これを行うために独自のキュー ライブラリを作成し (近日中に公開します)、基本的にクエリをキュー (基本的には配列) にプッシュし、削除されるたびにクエリを実行し、配列が空のときにコールバックを発生させます。
それをするのにそれほど時間はかかりません。
*編集。このサンプルコードを追加しました。これは私が以前に使用したものではなく、実際に試したこともありませんが、出発点になるはずです。パターンでできることは他にもたくさんあります。
注意すべきことが1つあります。キューイングは効果的にアクションを同期させ、次々と発生します。mysql キュー スクリプトを作成したので、複数のテーブルに対してクエリを非同期に実行できますが、任意の 1 つのテーブルに対して同期してクエリを実行できるため、要求された順序で挿入と選択が行われます。
var queue = function() {
this.queue = [];
/**
* Allows you to pass a callback to run, which is executed at the end
* This example uses a pattern where errors are returned from the
* functions added to the queue and then are passed to the callback
* for handling.
*/
this.run = function(callback){
var i = 0;
var errors = [];
while (this.queue.length > 0) {
errors[errors.length] = this.queue[i]();
delete this.queue[i];
i++;
}
callback(errors);
}
this.addToQueue = function(callback){
this.queue[this.queue.length] = callback;
}
}
使用する:
var q = new queue();
q.addToQueue(function(){
setTimeout(function(){alert('1');}, 100);
});
q.addToQueue(function(){
setTimeout(function(){alert('2');}, 50);
});
q.run();