async queue.pushにコールバックを与えるにはどうすればよいですか?

私は非同期モジュールを使用しています。

ベストアンサー

あなたが推進しているのは、自己呼び出し関数の
‘戻り値’です。ですから、キュータスクでは戻り値があります。この場合、タスクはコールバックとして別の関数を受け入れる関数になります。コールバックの引数は、タスク関数で呼び出される引数と同じです。

var q = async.queue(function (task, callback) {
    task("I'm a service!",callback);
}, 1);

q.push(function(userService,callback){
    doSomeStuff(userService);
    callback(userService);//stuff finished, call the callback given...
});//we are passing a function here(not a self invoking function that returns value)

q.drain = function(userService){//this will be invoked after finishing the queue
   stuff(userService);
}

この例では、2つの引数userServiceとcallbackを受け付ける関数をキューにプッシュします。キュー機能では、「私はサービスです!」と呼び出されます。
userService、およびキューからのコールバック関数arguementsです。関数が終了すると、callServiceが渡されたuserServiceが呼び出され、この関数が終了したことをasyncモジュールに伝えます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です