Ome*_*ari 10 ajax jquery jquery-deferred
我有两个javascript函数,save()并saveAll()设置如下:
function save(data) {
return $.post('/save', data);
}
function saveAll(callback) {
var dataArray = [];
$.each(dataArray, function() {
save(this);
});
callback();
}
Run Code Online (Sandbox Code Playgroud)
我有兴趣修改saveAll()它以利用jquery延迟对象,并在callback所有save()操作完成后引发该函数.但是,我不确定确切的语法...特别是与$ .when()内部的$ .each()有关.会是这样的吗?
function saveAll(callback) {
var dataArray = [];
$.when(
$.each(dataArray, function() {
return save(this);
})
).then(callback);
}
Run Code Online (Sandbox Code Playgroud)
Ome*_*ari 21
正如Eli指出的那样,$ .when()接受逗号分隔的参数列表而不是数组.使用Function.apply()传入数组似乎可以做到这一点.
function saveAll(callback) {
var dataArray = [], deferreds = [];
$.each(dataArray, function() {
deferreds.push( save() );
});
$.when.apply(window, deferreds).then(callback);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4929 次 |
| 最近记录: |