ホームページ > ウェブフロントエンド > jsチュートリアル > $.when() が配列内のすべての遅延タスクを確実に待機するようにするにはどうすればよいですか?

$.when() が配列内のすべての遅延タスクを確実に待機するようにするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-11 02:41:19
オリジナル
1048 人が閲覧しました

How to Ensure $.when() Waits for All Deferred Tasks in an Array?

Deferred の配列を $.when() に渡す

質問:

リストがの遅延タスクが作成されます:

var deferreds = getSomeDeferredStuff();

$.when(deferreds).done(function() { console.log("All done!") });
ログイン後にコピー

ただし、 「すべて完了しました!」すべての遅延タスクが完了する前にログに記録されます。遅延の配列を $.when() に渡して、すべてのタスクが完了するまで確実に待機させるにはどうすればよいですか?

答え:

の配列を渡すには、個別のパラメーターを必要とする関数に値を追加するには、Function.prototype.apply を使用します:

$.when.apply($, deferreds).then(function() { console.log("All done!") });
ログイン後にコピー

内訳は次のとおりです。コードの:

  • $.when.apply($, deferreds): $.when() の個別の引数に deferreds 配列を展開します。
  • then(function): Attachesすべての遅延が解決されたときに実行されるハンドラー。

あるいは、ES6 および新しい場合は、スプレッド演算子を使用できます:

$.when(...deferreds).then(function() { console.log("All done!") });
ログイン後にコピー

どちらの場合も、ハンドラーは遅延ごとに 1 つずつ、結果の配列を受け取ります。この配列を処理して必要な値を取得します。

以上が$.when() が配列内のすべての遅延タスクを確実に待機するようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート