我編碼其是多個承諾的組合物的方法:角鏈內同步方法承諾
function myMethod(){
var deferred = $q.defer();
asyncMethod1(data1).then(function(){
return asyncMethod2(data2);
}).then(function(){
return asyncMethod3(data3)
}).then(function(){
deferred.resolve(1);
}).catch(function(error){
//TODO
});
return deferred.promise;
的asyncMethods做工作如下所示:
function asyncMethodn(data){
var deferred = $q.defer();
if(data.lenght == 0){
//Nothing to do. Skip method.
//deferred.resolve()?
//return;?
}
anotherAsyncMethod(data).then(function(){
deferred.resolve();
}).catch(function(error){
deferred.reject();
});
return deferred.promise;
}
我試圖找出如何處理asyncMethod中的數據長度爲0的情況。在這種情況下,該方法將是sync而不是async。承諾鏈會發生什麼?你們如何處理這個問題?
在此先感謝。
問候。