在async.forEachSeries中引入延迟

时间:2015-03-16 14:07:05

标签: node.js node-async

async.forEachSeries(jList, function(json, cb) {
                setTimeout(foo,600000);
                function1(j,function(){}
};

我想在迭代器的每个条目被选中执行之前引入一个延迟。我尝试了一个setTimeOut,但它没有用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在您的代码中,setTimeout设置一个计时器和一个代码,以便在触发计时器后运行。但是你的代码继续运行,不会停止线程并等待超时完成。 所以你可以通过2种方式...来运行某种无限循环,等待你想要传递的时间然后继续 设置定时器来触发您想要的时间间隔索引。 然后你的线程可以自由运行并且它不会等待。

var forEach = require('async-foreach').forEach;
var timeoutLength = 3000;

forEach(["a", "b", "c"], function (item, index) {
    setTimeout(function () {
        console.log("each", item, index);
    }, timeoutLength * index);
});