簡體   English   中英

解決多重承諾Node-JS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM