[英]Resolving Muliple Promise Node-JS
我有很多承诺。
var defered = q.defer();
// promises is a array which will have different promises
var promises = [];
q.all(promises).then(function(response){
// SUSSECCFULLY RESOLVED ALL PROMISE THEN EXECUTION COME HERE
}, function(error){
// IF ANY PROMISE FAILED THEN EXECUTION COME HERE
});
我要处理所有的承诺,无论它们失败还是解决。
用例1:
您想将错误分别处理并成功处理所有未调用的错误:
var myApp = angular.module('myApp', []); function MyCtrl($scope, $q, $timeout) { function prOne(){ var d = $q.defer(); setTimeout(function(){ d.reject(); }, 100); return d.promise; } function prTwo(){ var d = $q.defer(); setTimeout(function(){ d.resolve(); }, 100); return d.promise; } $q.all([prOne().catch(function(){ console.log('fail for one'); return $q.reject() }), prTwo()]).then(function(){ console.log('success'); return $q.resolve(); }).catch(function(){ console.log('error'); });; } myApp.controller('MyCtrl', MyCtrl);
用例2:
您想分别处理错误并成功调用所有方法:
var myApp = angular.module('myApp', []); function MyCtrl($scope, $q, $timeout) { function prOne(){ var d = $q.defer(); setTimeout(function(){ d.reject(); }, 100); return d.promise; } function prTwo(){ var d = $q.defer(); setTimeout(function(){ d.resolve(); }, 100); return d.promise; } $q.all([prOne().catch(function(){ console.log('fail for one'); return $q.resolve() }), prTwo()]).then(function(){ console.log('success'); return $q.resolve(); }).catch(function(){ console.log('error'); });; } myApp.controller('MyCtrl', MyCtrl);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.