var promises = [promise1, promise2, promise3... promiseN];
我该如何使用?
$.when(promise1(), promise2(), promise3(), ...promiseN()).then(function(){ doSomething()});
我宁愿传递数组......任何想法我怎么能正确地做到这一点?显然这不起作用。
$.when(promises).then(function(){ doSomething()});
奇怪地完成,失败,总是都接受数组。
谢谢, 〜CK
答案 0 :(得分:7)
我不熟悉$.when()但你应该能够使用javascript函数apply()做你想做的事。有点像:
$.when.apply($, promises).then(function(){ doSomething()});
第一个参数是在函数调用中绑定到“this”的内容(类似于$.proxy()在jquery中的内容),第二个参数是传递给函数的参数数组。
例如:
myobj.myfunc.apply(myobj, [1,2,3]);
//is the same as
myobj.myfunc(1,2,3);
答案 1 :(得分:0)
我可以确认这适用于骨干提取和jQuery $ .when()。在这样的情况下非常有用:
fetchPromises = [];
for (key in this.dataSources) {
source = this.dataSources[key];
fetchPromises.push(source.fetch());
}
$.when.apply($, fetchPromises).done(this_countResults) // Do something with all the returned results