Pranav kirtani
Pranav kirtani

Reputation: 109

turning a synchronous function into asynchronous function

I have a for loop which does many iterations .I would like to put that piece of code in a custom async function as it is blocking.Is there anyway I can write a function so it will call a callback once the loop iteration is over?.

Upvotes: 0

Views: 194

Answers (1)

Lakshmi Swetha G
Lakshmi Swetha G

Reputation: 2849

Use asynchronous-function-inside-a-loop paradigm. This ensures that the asynchronous functions get called with the correct value of the index variable.

    var total = someObject.list.length;
    var count = 0;

    for(var i = 0; i < total; i++){
    (function(foo){
    myobj.get(someObject.list[foo], function(err, response) {
        do_something(foo);
        count++;
        if (count > total - 1) done();
    });
    }(i)); //To immediately invoke the function passing 'i' as parameter
    }


    function done() {
    console.log('All data loaded');
    }

Upvotes: 1

Related Questions