我有以下功能,但不是我想要的,因为每次迭代都需要之前的迭代结果。
有很多类似的问题,但我发现很难将解决方案缩小到一种模式。
如何重写以下函数,以便每个循环迭代“等待”之前的那个?
$scope.updateBarcode = function() {
var itemcodes = $scope.itemcode.split(';');
// doc is JSPDF document, fetch will add a new page to the supplied doc.
var doc;
//fetch will unshift the returned doc onto the supplied array.
var result = [];
for (var i = 0; i < itemcodes.length; i++) {
var promise = $scope.fetch(doc, itemcodes[i],result);
promise.then(function(){
doc = result[0];
if (i >= itemcodes.length) {
doc.save(itemcodes[0] + '.pdf');
};
})
};
}
答案 0 :(得分:3)
您需要将then()
的新承诺分配给您的变量,以便建立一个链:
promise = promise.then(...);