javascript - 如何在 Promise.all 中实时重试被拒绝的承诺
问题描述
我正在开发一个文件上传网络应用程序。我想同时上传多个文件(例如 5 个),但是当其中一个文件失败时,我会立即在文件旁边显示一个重试按钮。单击时,我希望它重试自己的 Promise。
关于我使用 Promise.all 并且所有承诺都在 Promise.all 表中,我该如何实现?我正在考虑使用网络工作者,但对于这样的任务来说似乎太多了。
这是我正在使用的一段代码(两个文件的情况):
await Promise.all([promise1.done(), promise2.done()]);
解决方案
没有重试 Promise这样的事情,因为 Promise 不会保留它们的上下文。他们的目的是改变他们的状态一次,然后他们是不可改变的。
如果您想重试失败,您需要再次明确调用导致您的 Promise 的操作。
推荐阅读
- ios - 根据时间 iOS Swift 在 UIBezierPath 上为 UIImageView 设置动画
- sql-server - 我正在尝试添加尾随'。将字符串填充到特定长度
- iphone - 当我单击 magento2 类别列表时,我面临错误“错误 - 0:错误...”
- java - 有没有办法处理并行硒测试执行的应用程序会话超时?
- ms-access - 为整个软件或任何应用程序(如果我在我的软件中使用 MS Access 数据库)拥有一个数据库是否足够
- javascript - 如何在reactjs中点击图片时重定向不同的URL?
- javascript - json数组是什么csv格式,如何转换成json数组,Nodejs
- neural-network - 辍学是如何工作的(使用多个 GPU)?
- xamarin - 使用反射的 MessagingCenter 和 NavigationService
- networking - ZeroMQ:有效连接之前的内部排队策略