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

イテレータの各エントリが実行のために取得される前に、遅延を導入したいと考えています。setTimeOut を試しましたが、うまくいきません。

何か案は?

4

1 に答える 1

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);
});
于 2015-03-16T14:11:12.657 に答える