typescript - Typescript Promise 文件上传
问题描述
大家好,我在每个文件上传到服务器后都试图打开一个对话窗口。但是,在所有文件上传之前,该窗口首先打开。有人可以告诉我我做错了什么吗?
public UploadAll() {
this.doAsyncTask().then(() =>
this.dialog.open(DialogOverviewExampleDialog, {
height: '200px',
width: '300px',
}));
}
doAsyncTask() {
var promise = new Promise((resolve, reject) => {
this.fileUploads.forEach((fileUpload) => {
fileUpload.upload();
resolve();
});
});
return promise;
}
解决方案
您的代码的问题是您首先解决了承诺,fileUpload
而且您不要等到上传完成
public UploadAll() {
this.doAsyncTask().then(() =>
this.dialog.open(DialogOverviewExampleDialog, {
height: '200px',
width: '300px',
}));
}
doAsyncTask() {
return Promise((resolve, reject) => {
const promises : Array<Promise> = [];
this.fileUploads.forEach((fileUpload) => {
promises.push(fileUpload.upload());
});
Promise.all(promises)
.then(() => resolve())
.catch((err) => reject(err));
});
}
推荐阅读
- php - 如何在PHP中刷新页面时显示最后上传的图像
- c++ - 转换回二维数组
- c# - 从 ComboBox 获取枚举值并将其存储为整数?
- angular - 正确设置 Nginx 以处理块以处理 Angular 网站
- scala - 强制存储在驱动程序节点上的 Spark 数据集(而不是 pandas df)是否可行?
- r - 如何在组合 ggplots 上添加线,从一个图上的点到另一个图上的点?
- wordpress - AWS WordPress ERR_TOO_MANY_REDIRECTS
- ios - 过渡动画在 SwiftUI 中不起作用
- c# - c# linq where on object lists 非常慢
- python - 我可以从量化的 Tensoflow 模型中获得什么结果?