我是Promises的新手,想了解什么是正确的方法来避免回调地狱'承诺,因为我有与使用回调相同的问题
foo(a: number): Promise<boolean>{
return doSomething(a).then((b)=>{
return doAnotherThing(b).then((c)=>{
return true;
})
})
}
看看这个金字塔..
你怎么能避免这种情况?
提前致谢
答案 0 :(得分:1)
只是链接承诺而不是嵌套它们:
NOT EXISTS
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
答案 1 :(得分:1)
您可以使承诺返回承诺(或任何其他值),然后将其与.then()
链接:
foo(a: number): Promise<boolean>{
return doSomething(a).then((b)=>{
return doAnotherThing(b);
}).then((c)=>{
return true;
});
}
答案 2 :(得分:0)
如果你使用babel,ES2015你可以使用等待。
例如
async function foo(a) {
var b = await doSomething(a);
var c = await doAnotherThing(b);
return true;
}
预设:ES2015,第3阶段