コールバックを持つ他の(潜在的に非同期の)関数の不確定な数を呼び出す必要がある関数を持つ関数を持つ私は次のパターンを使用しています。javascriptでは、コールバックで複数の非同期関数を実行するためのベストプラクティスは何ですか?
確かにそれは正しいですが、審美的にはあまり喜ばれません。私に
// fn responsible for figuring out and calling aysnc funcs function fn(arg, outNext) { // calculate how many funcs we will be calling var waitCt = 0; var a, b, c; if(a = arg['a']) waitCt++; if(b = arg['b']) waitCt++; if(c = arg['c']) waitCt++; // call funcs if(a) fnArbitrary(arg.a, inNext); if(b) fnRandom(arg, inNext); if(c) fnClueless(15, inNext); // calback func function inNext(err) { // wait for one less func waitCt--; // return err if found if(err) outNext(err); // return nada if all funcs performed if(waitCt == 0) outNext(); // otherwise we're waiting for other funcs to finish return; } }
2つのステップを取る必要があると思わ:呼び出されますどのように多くのfuncs見て最初に、呼び出しを行うための第二。しかし、たぶん私の脳は、昔の学校のプログラミングか、昨夜のリアのレ
fa、fb、およびfcをどこで定義したか不明です。あなたの関数にサンプル呼び出しを投稿してください。 – mamoo
@mamoo - fa、fb、およびfcは、コールバックを持つ任意の関数です(たとえば、データベースへのポスティングまたはデータベースからの読み取りなど)。 (実際のコードは非常に大きく、絡み合っています) –