Javascript 如何重构js承诺链
重构这一承诺链的好方法是什么?一定有更好的办法。。。但我似乎无法理解。ThxJavascript 如何重构js承诺链,javascript,refactoring,ionic,Javascript,Refactoring,Ionic,重构这一承诺链的好方法是什么?一定有更好的办法。。。但我似乎无法理解。Thx loginPromise.then(function() { loadConfigFirebase().then(function() { setupUserObj().then(function() { saveUserFirebase().then(function() {
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)
})
我本来希望看到一个没有支持函数的重构,但它工作得很好,而且非常干净。ThanksI希望看到一个没有支持函数的重构,但它工作得很好,而且非常干净。ThanksI希望看到一个没有支持函数的重构,但它工作得很好,而且非常干净。ThanksI希望看到一个没有支持函数的重构,但它工作得很好,而且非常干净。谢谢
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);