【问题标题】:How to return Many "Await" in one Promise如何在一个 Promise 中返回多个“等待”
【发布时间】:2020-08-14 23:56:58
【问题描述】:

我有一个反应异步函数export const EcgSaveDpcRequestSPService = async (dataItem, filesData) => { 在其中我有 2 个等待发布到 2 个 SharePoint 列表,然后是一个异步 forEach dataItem.dpcUpFiles.forEach(async (file, index) => {,它有 3 个等待发布到其他 Sharepoint 列表。一些 await 需要在它们之前发布结果的结果。

我有一个 :Promise.resolve(.. 只有在所有等待完成时才会触发 添加更多代码后,处理在循环中的第一个等待之后立即转到Promise.resolve(..。 我不知道是否有错误,因为没有一个 catch 得到处理。

如何组织所有帖子,只有当所有帖子都完成后,我才能从函数中返回? 如果有错误,它应该立即拒绝。

【问题讨论】:

  • .forEach() 不知道承诺,并且不会暂停 await 的循环。因此,摆脱.forEach() 并使用常规的for 循环。几乎没有理由再使用.forEach()。如需进一步帮助,请在您的问题中添加一段有意义的代码,以便我们准确了解您要执行的操作。

标签: reactjs async-await es6-promise


【解决方案1】:

你可以这样写

try {
    for (const file of dataItem.dpcUpFiles) {
        await yourAsyncFunction();
    }
    // all done
} catch ((error) => {
    // failed
});

【讨论】:

    猜你喜欢
    • 2017-02-10
    • 2016-10-14
    • 1970-01-01
    • 2017-01-15
    • 2018-05-20
    • 2019-09-17
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多