0

私はnode.jsを使用しています

ループ内で呼び出す必要があるいくつかのパラメーターを持つ関数があります。この関数は、ループ反復子をパラメーターとして使用して呼び出す必要があり、ループは処理が完了するまで関数を再度呼び出してはなりません。

このようなもの (sync メソッド): (someFunc は非同期関数であることに注意してください)

var totCount = 1000;
for (var x = 0 ; x < totCount ; x++) {
    someFunc(x, parm2, parm3, parm4);
}

ノードでは、 someFuncは任意の順序で実行できることを理解していますが、この場合、絶対に x = 0、1、2 などで実行する必要があります。

非同期ライブラリ呼び出し「async.whilst」がこれを行うようですが、例を実際のコードに変換するのに問題があります。

「async.whilst」の例を次に示します。

var count = 0;

async.whilst(
    function () { return count < 5; },
    function (callback) {
        count++;
        setTimeout(callback, 1000);
    },
    function (err) {
        // 5 seconds have passed
    }
);

関数someFuncを何度も呼び出さなければならない可能性があるため、通常のコールバック アプローチは機能しないことに注意してください。

これを自分のコードに変換するにはどうすればよいですか? (「async.while」が正しいアプローチであると想定しています。そうでない場合は、正しいアプローチを指定してください)

4

2 に答える 2