【发布时间】:2020-03-19 21:27:08
【问题描述】:
我想在 AWS S3 上上传多张图片。
首先我在前端上传图像并向用户显示图像的预览,然后在 for 循环中我每次都运行函数 uploadFilesSimulator 来上传每张图像。
prepareFilesList(files: Array<any>) {
for (const item of files) {
item.progress = 0;
this.files.push(item);
const reader = new FileReader();
reader.onload = (filedata) => {
item.url = reader.result + '';
}
reader.readAsDataURL(item);
this.uploadFilesSimulator(item);
}
}
首先我向我的节点 js API 发出 get 请求。结果是key和url。 然后在获取 url 后,我运行 put request 将图像添加到该 url。
uploadFilesSimulator(file: any) {
this.formService.getUploadUrl().subscribe(data => {
let upload = this.formService.uploadImage(data.url, file).subscribe(data => {
console.log(data)
}, err => console.log(err));
});
这是可行的,但我想避免嵌套订阅。 我应该使用什么 rxjs 运算符?
【问题讨论】: