【发布时间】:2015-02-11 20:49:34
【问题描述】:
在 SO Deferred in $.when while looping an array 中扩展这个问题
我有这个控制结构:-
function oldSync(array) {
var output = []; // to store the output
$.each( array, function(key,value) { // runs sequentially
var item1 = SyncFunction_A(input);
var item2 = SyncFunction_B(input);
output.push({'a': item1, 'b': item2});
});
return doSomething(output); // process all output
}
接下来,我将 SyncFunction() 替换为 AsyncFunction(),
问题:如何将其转换为延迟或异步函数?
function newAync(array) { //
var output = [];
$.each( array, function(key,value) { // runs sequentially
var item1 = AsyncFunction_A(input);
var item2 = AsncFunction_B(input);
item1.then(item2).then(function(data) {
output.push({'a': data[0], 'b': data[1] });
}
});
return doSomething(output); // FAIL, it doesn't wait for Async
}
【问题讨论】:
标签: jquery asynchronous