Noosphere Possibilities Maximized

    aloop
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.6 • Public • Published

    A(sync)loop - Tiny, async looping in javascript

    Motivation

    Have you ever wanted to write a back/front end function that needs to iterate over a large array, but you don't want to block the event loop?

    Now you can:

    How to use

    import aloop from "aloop";
    
    async function foo() {
        // returns a Promise
        await aloop(
            // starting number
            0,
            // when to end, number,
            1000,
            // callback for each iteration with the count as param
            i => console.log(i)
        );
    
        // e.g loop a 1000 times 
        // and console log the current count
        aloop(0, 1000, (i) => {
            console.log(i);
        });
    };

    Tests

    (async () => {
        const million = 1000000;
    
        let count = 0;
    
        // we can use await here also !
        const first = aloop(0, million, i => {
            count += i;
        }).then(() => console.log("1 finish"));
    
        const second = aloop(0, million, i => {
            count += i;
        }).then(() => console.log("2 finish"));
    
        const third = aloop(0, million, i => {
            count += i;
        }).then(() => console.log("3 finish"));
    
        Promise.allSettled([first, second, third]).then(() => {
            console.log("We're finished", count);
        });
    
        console.log("I got called first !!! 🤯");
    
        // /$ ts-node test.ts
        // Starting
        // I got called first !!! 🤯
        // 1 finish
        // 2 finish
        // 3 finish
        // We're finished 1499998500000
    
    })();

    Install

    npm i aloop

    DownloadsWeekly Downloads

    10

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    6.8 kB

    Total Files

    8

    Last publish

    Collaborators

    • tronikel