2016-11-13 15 views
0

私はasync.until()関数を使用していましたが、テストはfalseを返していますが、繰り返し呼び出されることはありません。その結果、関数は次のタスクを実行するために呼び出されません。async.until(テスト、関数、コールバック)でテスト関数が繰り返し呼び出されていない

+0

はい - 非同期はそれが始まる前に完了する前の実行を待たないことを意味するので、これはあります次へ - この回答を見る http://stackoverflow.com/questions/748175/asynchronous-vs-synchronous-execution-what-does-it-really-mean – mike510a

+0

はい、わかりました。しかし、この文書[https://caolan.github.io/async/docs.html#until]をチェックすると、テストが真を返すまでmain関数が繰り返し呼び出されます。だからこそ私は不思議に思っていた。 – Angshuman

答えて

1

テスト関数が1回しか表示されないのは、最初の繰り返しを過ぎて進まないためです。ある反復から次の反復へ移動するには、async.untilに渡す2番目の関数でcallbackを呼び出す必要があります。ここで

は、各反復で呼び出されているテスト機能が表示されますわずかに変更された例です。

var iteration = 0; 
async.until(function(){ 
    console.log("Checking iteration : " + iteration); 
    return iteration > 5; 
}, function(callback){ 
    console.log(++iteration); 
    setTimeout(callback, 1000); 
}, function(result){ 
    console.log("===================="); 
    console.log(result); 
}); 
関連する問題