我想要做的是等待第二个 promise 完成,连接数据,即data = data.concat(items)
,然后增加计数,使循环运行指定的次数。全部都是用 AngularJS 编写的。
DataService.getSomeData().then(function(data) {
let count = 1;
while (count < 3) {
if (someCondition) { // It evaluates to true
// Second Promise
DataService.getUserData().then(function(items) {
data = data.concat(items); // --------> this should run before incrementing the count
});
count++;
}
$scope.myData = data;
}
});
谢谢!
最佳答案
保持 API 返回 promise - 它是最容易处理和最可预测的......
DataService.getSomeData()
.then(someData => {
let count = 1;
const promises = [];
while (count < 3) {
if (someCondition) { // It evaluates to true
promises.push(DataService.getUserData());
count++;
}
}
return $q.all(promises)
.then(data => data.reduce((memo, data) => memo.concat(data), someData));
})
.then(data => $scope.myData = data);
关于javascript - 如何在 JavaScript 中先执行一个 Promise,然后再执行下一个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48112101/