javascript - 不要更改 .then() 中的解析值

标签 javascript promise es6-promise

我有 2 个返回 Promise 的函数,P1P2 。首先我想等到P1()满足了,那么我要执行P2P2()满足了我想做一些值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/

相关文章:

javascript - 复选框 TreeView 功能不起作用

javascript在页面加载时隐藏div,直到if语句条件选择div

javascript - 如何在 React JS 中处理 JSX 内的 Promise?

javascript - 如何使用 JavaScript 中的 Promise 进行状态更新?

javascript - 使用动态路径与 mongoose 进行更新

javascript - 如何防止选择html文本区域内容时字符位置发生变化

javascript - 并发链式 JavaScript promise

typescript - 在 Typescript 中使用数组迭代简化异步等待

javascript - 调用 Promise.all() 时如何提供有关 Promise 的元数据?

node.js - 从 KOA 中间件内部的 Promise 调用 Yield