有没有办法将 promise 对象数组转换为数组的 promise 对象?我正在寻找一些行为类似于$q.all(promises)
AngularJS 的东西。
这是我的代码:
var getPages = function(courses) {
var courses_promises = courses.filter(function(item) {
return item.courses[0].home_link;
}).map(function(item) {
deferred = $.Deferred();
item["class_link"] = item.courses[0].home_link;
item["home_link"] = item["class_link"] + "class/index";
$.get(item.home_link)
.then(function(response) {
item["html"] = response;
deferred.resolve(item);
});
return deferred.promise();
});
return $.when.apply($, courses_promises);
};
我希望该getPages
函数返回一个将使用值数组解析的单个承诺,每个值对应于承诺数组中相同索引处的承诺。如果任何一个 Promise 被拒绝解决,这个结果 Promise 将被同样的拒绝解决。
然后我会用
getPages.then(getEvents)
wheregetEvents
是另一个函数,它需要一个数组,其中的元素由getPages
.
谁能帮我吗?谢谢!