【发布时间】:2015-02-15 09:21:00
【问题描述】:
我有一组要按顺序下载的 URL,一次 2 个 URL。
var urls = [url1,url2,url3,url4,url5];
循环应该使用一些异步函数下载所有 URL,2 个 URL 按它们在数组中出现的顺序。
基本的顺序循环是使用.reduce 完成的,其工作方式如下:
preloadPromise = urls.reduce(function(p, url) {
return p.then(WinJS.Utilities.Scheduler.schedulePromiseBelowNormal).then(function() {
return preloadOneAsync(url);
}).then(null, function(error) {
if (error.name !== "Canceled") {
logger.error("Could not create preloaded " + url, error);
}
});
}, WinJS.Promise.as());
现在我想介绍2个网址同时并行下载。
所以它会下载:[url1,url2] 然后 [url3,url4] 最后是 [url5]
函数的结果也应该是每个下载承诺的结果,类似于WinJS.Promise.join 的工作方式。
【问题讨论】:
标签: javascript asynchronous coffeescript promise winjs