【问题标题】:Doing an action after promise.all finishes?在 promise.all 完成后执行操作?
【发布时间】:2019-05-17 09:08:16
【问题描述】:

我有一个 promises 数组,在 .then 在 promise.all 之后我做了很多异步函数,最终我正在填充一个数组(最终大约 10,000 个项目将在数组中)。我想等到 promise.all 完成后的 .then ,这样我就可以运行一个 for 循环并将排序数组中的 10,000 个项目中的 100 个添加到数据库中。如果我不能在 .then 在 promise.all 之后链接另一个 .then,我该怎么做? 谢谢

【问题讨论】:

  • if I can't chain a .then after promise.all? 当然可以
  • 我不够清楚,现在编辑
  • 如果没有看到你的代码,就很难弄清楚你的代码哪里出了问题
  • 我不同意,代码很长而且无关紧要。在 .then 在 promise.all 之后,我正在向数据库中添加东西 + 填充一个数组。 .then 之后的数组应该是满的,现在我要对其进行排序,取出前 100 个并将它们插入到 DB 中。
  • 代码非常相关 - 将其修剪为 minimal reproducible example 并将其发布到您的问题的编辑中。否则,没有办法知道到底发生了什么,问题可能会被关闭

标签: javascript node.js callback promise async-await


【解决方案1】:

您可以使用多个 then 轻松链接承诺

Promise.all([promise1, ...])
    .then(async () => {
        await something();
        await somethingElse();
    })
    .then(async () => {
        // your function to execute after everything
    });

【讨论】:

  • 我不清楚并编辑了我的问题。在promise.all 之后,我就是我在.then 中所需要的。我想在此之后执行一个函数。然后完成
猜你喜欢
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
相关资源
最近更新 更多