Bat*_*man 0 javascript promise angularjs angular-promise
我有一系列的承诺和一个我需要在承诺完成后调用的函数.但是,每当单个promise失败时,我的$ q.all(promise)将不会启动回调函数.
function searchLibraries(library) {
//console.log(library);
console.log('inside searchlibraries');
var libraryCount = library.length;
for (var i = 0; i < libraryCount; i++) {
//console.log(i,library[i].siteUrl,library[i].listID,library[i].listName)
itemPromise[i] = $().SPServices({
operation: "GetListItems",
webURL: library[i].siteUrl,
listName: library[i].listID,
CAMLViewFields: cViewFieldsLimited,
CAMLQuery: cQueryAllCheckedOutDocuments,
CAMLQueryOptions: cQueryOptions,
cacheXML:true,
completefunc: function (xData,Status){
if($(xData).hasSPError()){
console.log("Error");
console.log("Error Code:" ,$(xData).getSPErrorCode());
console.log("Error Message:" ,$(xData).getSPErrorText());
}
}
})
}
return $q.all(itemPromise).then(parseSearchResult);
}
Run Code Online (Sandbox Code Playgroud)
.then()需要多个参数.第二个参数是一个函数引用,如果promise失败则调用它.您可以提供第二个参数,如
$q.all(itemPromise).then(sucessHandler, failHandler)`
Run Code Online (Sandbox Code Playgroud)
在Q promise库中,您可能还希望.allSettled()在所有承诺完成后获得通知,即使有些失败也是如此.如何细节的作品在这里.我使用提供的Bluebird promise库.settle().
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |