我使用Promises陷入了厄运的金字塔。
我有以下内容:
getA
getB
getC
getC
取决于取决于getB
的{{1}}(和getA
)。
所以我必须像这样打电话给他们
getA
但是,如上所述,我需要getA(param)
.then(getB)
.then(getC)
的输出作为getA
的参数,所以我这样做了
getC
是的,金字塔让我...我给家人带来了耻辱。帮助我重新获得荣誉。
答案 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);
});