私は2つのjavascript機能、save()
とsaveAll()
、以下のように設定している:上昇jQueryのdeferred.then()
function save(data) {
return $.post('/save', data);
}
function saveAll(callback) {
var dataArray = [];
$.each(dataArray, function() {
save(this);
});
callback();
}
私はそれを活用することをsaveAll()
を変更するに興味をjqueryはオブジェクトを継承し、save()
操作がすべて完了すると、callback
関数が呼び出されます。しかし、私は正確な構文がわかりません。具体的には、$ .when()の中の$ .each()との関係でです。このようなものでしょうか?
function saveAll(callback) {
var dataArray = [];
$.when(
$.each(dataArray, function() {
return save(this);
})
).then(callback);
}
これは幻想的で、ちょうどこれを探していました。 jQueryは遅延オブジェクトの配列をネイティブに許可していないことに驚いています。 –
残っていることを待たずに、引数のいずれかが拒否/失敗した場合に直ちに解決されるということが少し分かっているので、注意してください。それは本当です:)あなたが私に尋ねると、予期しない。成功/失敗のステータスに関係なく、常に解決するすべての引数を待つ$ .whenAll()を書きました:http://jsfiddle.net/InfinitiesLoop/yQsYK/ – InfinitiesLoop