我想我是通過角度來做的,對我而言,我需要在執行到其他進程之前查詢所有狀態。讓它結合了所有的Ajax請求的數組,然後使用$q.all
相當於本地JavaScript的Promise.all()
getAllStatusResult() {
let promises = [];
let statusList = ['all','done','ongoing','cancelled'];
let responseList = [];
let date = new Date(), y = date.getFullYear(), m = date.getMonth();
let deferred = $q.defer();
statusList.map(status => {
let payload = {
start_date: "2017-1-1",
end_date: formatDate(date),
filter: { status }
}
promises.push(ReportsService.getRevenues(payload).then((response) => {
responseList.push({ name: status, total:response.data.total});
}));
});
$q.all(promises).then(() => {
deferred.resolve(responseList);
}).then(response => {
return response;
});
return deferred.promise;
}
負荷第一位的,然後使用遞延執行? https://api.jquery.com/deferred.then/ –