将同步函数转换为异步函数

时间:2015-02-16 16:16:13

标签: node.js

我有一个执行多次迭代的for循环。我想将这段代码放在自定义异步函数中,因为它阻塞。无论如何,我可以写一个函数,所以它会在循环迭代后调用一个回调结束了?。

1 个答案:

答案 0 :(得分:1)

使用异步函数内部循环范例。这可以确保使用索引变量的正确值调用异步函数。

    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');
    }