首页 > 解决方案 > 如何在 Promise.all 中实时重试被拒绝的承诺

问题描述

我正在开发一个文件上传网络应用程序。我想同时上传多个文件(例如 5 个),但是当其中一个文件失败时,我会立即在文件旁边显示一个重试按钮。单击时,我希望它重试自己的 Promise。

关于我使用 Promise.all 并且所有承诺都在 Promise.all 表中,我该如何实现?我正在考虑使用网络工作者,但对于这样的任务来说似乎太多了。

这是我正在使用的一段代码(两个文件的情况):

await Promise.all([promise1.done(), promise2.done()]);

标签: javascriptreactjs

解决方案


没有重试 Promise这样的事情,因为 Promise 不会保留它们的上下文。他们的目的是改变他们的状态一次,然后他们是不可改变的。

如果您想重试失败,您需要再次明确调用导致您的 Promise 的操作。


推荐阅读