1

配列内の各項目に対して ajax 呼び出しを実行しようとしています。今、私はすべての約束を配列に投げてから、$.when.applyを実行します...

// throw all the promises into an array
_.each(birds,function(bird,i){
    birds[i] = getBird(bird) // getBbird returns $.ajax(...)
});
// do $.when.apply
return $.when.apply($,birds).then(function(res){
    console.log("bird is the word",res)
});

私の最初のSO検索は、基本的に、これを行うべき「方法」で行っていることを確認しました。しかし、applyとてもハッキーに感じます。これを達成するためのより標準化された/一般的なjQueryの方法はありますか?

前もって感謝します。

4

1 に答える 1

1

しかし、適用はとてもハックに感じます。これを達成するためのより標準化された/一般的なjQueryの方法はありますか?

いいえ、jQuery の方法はハックです。結果をどのように処理するかについて説明しないでください。

ただし、すべての適切なpromise ライブラリ ( BluebirdQRSVPWhenDojo、さらには今後のES6 promises ) に実装されているこの機能用の標準化されたツールがあり、all()これは promise コンストラクターの静的関数として使用できます。 .

于 2014-07-27T13:03:10.310 に答える