あなたはキューを文字列にして、コールバックを自分でラップすることもできますが、それは毛むくじゃらしています。幸いにもそこには数多くの図書館があります。私はカウンターアプローチのファンではないので、コールバックがまだ解雇されていないことを時々知ることが難しいためです。
私は "Deferred"スタイルのファンです。 https://github.com/heavylifters/deferred-js
それとも全く別のAPIについて、Step.js https://github.com/creationix/step
またはこの問題をカプセル化し、他のマイクロlibsのためにここを参照してくださいを参照してください:このようなこのライブラリとしてhttp://microjs.com/#defer
それとも、それを行うに何らかの外部状態を設定して呼び出し、すべてのコールバックで共通のdone
関数を呼び出すことで
var complete = {
first: false,
second: false
};
doFirstAsync(function() {
complete.first = true;
allDone();
});
doSecondAsync(function() {
complete.second = true;
allDone();
});
var allDone = function() {
if (complete.first && complete.second) {
alert("done with all async!");
}
};
上記のライブラリのほとんどは、同様の方法でこれを行います。しかし、ただ抽象化され一般化されています。その一般化は、あらゆるものが飛び回るコールバック関数の配列を持っているので、物事が毛むくじゃらすることがある場所です。それは楽しい関数型プログラミングですが、概念的には複雑になります。
これをやりなおしている場合は、好きなAPIを持つlibを使用してください。
テイク
は、あなたが呼び出すことができるため、あなたが求めているものを達成するために、 pubsub.jsを見てみると、イベントを一緒にストリングするのに本当に役立ちます。購読して発行するのは、登録された各イベントを順番に同期して行います(同期表示する場合)。 https://github.com/mroderick/PubSubJS – Gatsこれは直接回答ではないので、コメントとして追加しました。 – Gats