Есть ли способ преобразовать массив объектов обещания в объект обещания массива? Я ищу что-то вроде $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
возвращала одно обещание, которое будет разрешено с массивом значений, каждое значение соответствует обещанию с тем же индексом в массиве обещаний. Если какое-либо из обещаний разрешается с отклонением, это результирующее обещание будет разрешено с таким же отклонением.
И тогда я бы использовал
getPages.then(getEvents)
где getEvents
— еще одна функция, которая ожидает массив с элементами, разрешенными getPages
.
Может кто-нибудь мне помочь? Благодарю вас!