Nodejs逐步执行数组并完成每个步骤,然后再继续

时间:2014-12-04 12:06:05

标签: node.js

我在处理我已经存储在Redis中的队列时遇到了麻烦。

Redis中的队列基本上是一个简单的ID数组,我想逐个逐步介绍。

我目前的代码:

async.forEach(data, function(n, done) {
    redisClient.hgetall("visitor:" + n, function(err, visitor) {
        if (visitor != null) {
            agentOnlineCheck(visitor['userID'], function(online) {
                if (online == true) {
                    console.log("We are done with this item, move on to the next");
                } else {
                    console.log("We are done with this item, move on to the next");
                }
            });

        } else {
            console.log("We are done with this item, move on to the next");
        }
    });
}, function() {
    console.log("I want this to fire when all items in data are finished");
});

我使用async库,var data上方代表一个数组,如:

['232323', '232423', '23232']

我想循环遍历数组,但一次只能循环一个ID。并且不会转到下一个ID,直到前一个ID运行所有回调。

这有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用async.eachSeries代替async.forEach

c.f。:https://github.com/caolan/async#eachSeries