【发布时间】:2015-12-09 09:21:00
【问题描述】:
我正在尝试检测 foreach 语句是否与 foreach 中的语句一起完成。根据我的研究,许多人要求使用 Promise。当我实现它时,它并没有按照我期望的方式执行。
var uploadUrl = "/api/upload";
$('#add_product').closeModal();
var promises = angular.forEach(vm.images_selected, function(value , key){
return File_Upload.uploadFileToUrl(value, uploadUrl)
.success(function(result){
vm.images_selected_uploaded.push(result);
console.log('here')
});
})
$q.all(promises).then(function () {
console.log('there')
console.log(vm.images_selected_uploaded)
})
从上面的代码(假设值长度为2,输出将是
there
here
here
我真正想要的是这里这里那里。我在这里错过了什么?
【问题讨论】:
-
您应该将
success移至$q.all()中的then。 -
.forEach应该是.map(假设 angular.forEach/angular.map 在功能上类似于 array.prototype.forEach/array.prototype.map ...嗯,没有 angular.map 。 ..
标签: javascript angularjs foreach promise