質問:
リストがの遅延タスクが作成されます:
var deferreds = getSomeDeferredStuff(); $.when(deferreds).done(function() { console.log("All done!") });
ただし、 「すべて完了しました!」すべての遅延タスクが完了する前にログに記録されます。遅延の配列を $.when() に渡して、すべてのタスクが完了するまで確実に待機させるにはどうすればよいですか?
答え:
の配列を渡すには、個別のパラメーターを必要とする関数に値を追加するには、Function.prototype.apply を使用します:
$.when.apply($, deferreds).then(function() { console.log("All done!") });
内訳は次のとおりです。コードの:
あるいは、ES6 および新しい場合は、スプレッド演算子を使用できます:
$.when(...deferreds).then(function() { console.log("All done!") });
どちらの場合も、ハンドラーは遅延ごとに 1 つずつ、結果の配列を受け取ります。この配列を処理して必要な値を取得します。
以上が$.when() が配列内のすべての遅延タスクを確実に待機するようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。