Gen*_*Lim 2 javascript foreach promise angularjs
我试图检测foreach语句是否与foreach中的语句一起完成.根据我的研究,许多人都要求使用承诺.当我实现它时,它没有按照我期望的方式执行.
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)
})
Run Code Online (Sandbox Code Playgroud)
从上面的代码(假设值长度为2,输出将是
there
here
here
Run Code Online (Sandbox Code Playgroud)
我真正想要的是在这里.我在这里错过了什么?
第一个问题,angular.forEach返回对第一个参数的引用,因此它们不会是您正在寻找的承诺
第二个问题,angular没有替代.map
如果在promises数组中保存promise,则可以执行此操作
var uploadUrl = "/api/upload";
$('#add_product').closeModal();
var promises = [];
angular.forEach(vm.images_selected, function(value , key){
promises.push(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)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2916 次 |
| 最近记录: |