重构这个 promise 链的好方法是什么?一定有更好的方法......但我似乎无法弄清楚。谢谢
loginPromise.then(function() {
loadConfigFirebase().then(function() {
setupUserObj().then(function() {
saveUserFirebase().then(function() {
loadUserFirebase().then(function() {
ionicUserIdentify().then(function() {
registerDeploy().then(function() {
$ionicLoading.hide();
q.resolve();
}).catch(function(err) {
displayError(err)
})
}).catch(function(err) {
displayError(err)
})
}).catch(function(err) {
displayError(err)
})
}).catch(function(err) {
displayError(err)
})
}).catch(function(err) {
displayError(err)
})
}).catch(function(err) {
displayError(err)
})
}).catch(function(err) {
displayError(err)
})
最佳答案
function chainPromise(promise, fns, errorFn){
if(!fns.length){
return;
}
promise.then(function(){
var fn = fns.shift();
chainPromise(fn(), fns, errorFn);
}).catch(errorFn);
}
chainPromise(loginPromise, [
loadConfigFirebase,
setupUserObj,
saveUserFirebase,
loadUserFirebase,
ionicUserIdentify,
registerDeploy,
function(){
$ionicLoading.hide();
q.resolve();
}
], displayError);
关于javascript - 如何重构js promise 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604735/