我有 2 个返回 Promise 的函数,P1
和P2
。首先我想等到P1()
满足了,那么我要执行P2
当 P2()
满足了我想做一些值P1()
的事情决心。使用 async/await
很容易做到像这样:
const result = await P1()
await P2()
doSomething(result)
但我不能使用async/await
。使用 promise 我可以这样做:
P1().then((result) => P2().then(() => result)).then((result) => doSomething(result))
但是有没有更漂亮的方法来做到这一点(没有嵌套 then
s)?
最佳答案
您可以像这样使用 Promise.all,它会等到所有的 Promise 都得到解决(或第一个拒绝)。
Promise.all([p1, p2]).then(result => {
doSomething(result);
});
或更简洁:
Promise.all([p1, p2]).then(result => doSomething(result));
关于javascript - 不要更改 .then() 中的解析值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47435831/