用承诺回调地狱

时间:2015-11-22 16:24:05

标签: javascript callback promise

我使用Promises陷入了厄运的金字塔。

我有以下内容:

  • getA
  • getB
  • getC

getC取决于取决于getB的{​​{1}}(和getA)。

所以我必须像这样打电话给他们

getA

但是,如上所述,我需要getA(param) .then(getB) .then(getC) 的输出作为getA的参数,所以我这样做了

getC
是的,金字塔让我...我给家人带来了耻辱。帮助我重新获得荣誉。

2 个答案:

答案 0 :(得分:0)

您可以使用Promise.all等待多个承诺:

您的伪代码变为:

var pa = new Promise(function(){/*function A*/});
var pb = new Promise(function(){
    pa.then(function {/*function B*/}
});
Promise.all([pa, pb]).then(function(){/*function C*/});

答案 1 :(得分:0)

我想你可以这样做。

var S;
getA(param)
.then(function (A) {
    return S = A;
})
.then(getB)
.then(function (B) {
    return getC(S, B);
})
.then(function (C) {
    console.log(C);
});