我有這個功能,我需要從 AngularJs 轉移到 VueJs,這讓我很難過!任何幫助,將不勝感激 :)
items = {
one: {...details here...},
two: {},
}
AngularJS
var promises = [];
var deferred = $q.defer();
angular.forEach(items, function(details) {
promises.push(details.promise);
});
$q.all(promises).finally(function() {
deferred.resolve();
});
return deferred.promise;
到目前為止我在 VueJs 中有什么
let promises = [];
for (let [name, details] of Object.entries(items)) {
promises.push(new Promise((resolve) => {resolve(details)}));
}
return Promise.all(promises);
謝謝!
uj5u.com熱心網友回復:
沒有必要,new Promise因為Promise.all允許非承諾值。
對于undefined在所有物件值都已解決(即已解決或被拒絕)時解決(這是延遲所做的)的承諾,它是:
Promise.all(Objects.values(items).map(({ promise }) => promise))
.then(() => {}) // if it's necessary to resolve with undefined
.catch(() => {}) // if it's necessary to not reject
如果所有值都不是承諾,則根本不需要Promise.all。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/352852.html
標籤:javascript angularjs Vue.js 承诺
