在 for 循环中将数据传递给下一个请求
Pass data to next request in for loop
我有一个带有 param
的图片上传请求。我想将第一个请求的响应发送到 for 循环内的所有下一个请求。
for (let i = 0; i < e.target.files.length; i++) {
this.http.uploadImages(e.target.files[i], 'UploadImage', this.postId).subscribe((res:any)=>{
if(res.status == true){
this.postId = res.data.post_id; // i want to pass this postId to All other Requests.
this.userImages.push({ img: res.data });
}
})
}
在 for 循环之前创建新变量并存储响应中的 postId。比请求检查这个变量。如果为空 - 跳过,如果没有 - 发送
以下代码段将依次执行每次上传,每次都更新 this.postId
值。使用箭头函数 this
上下文被保留。
(如果您的 this.http.uploadImages
方法已经 returns 一个 promise,您不需要实例化一个新的)
const upload = async () => {
for (let i = 0; i < e.target.files.length; i++) {
await new Promise((resolve, reject) => {
this.http
.uploadImages(e.target.files[i], 'UploadImage', this.postId)
.subscribe((res: any) => {
if (res.status) {
this.postId = res.data.post_id;
this.userImages.push({img: res.data});
resolve();
} else {
reject();
}
});
});
}
};
我有一个带有 param
的图片上传请求。我想将第一个请求的响应发送到 for 循环内的所有下一个请求。
for (let i = 0; i < e.target.files.length; i++) {
this.http.uploadImages(e.target.files[i], 'UploadImage', this.postId).subscribe((res:any)=>{
if(res.status == true){
this.postId = res.data.post_id; // i want to pass this postId to All other Requests.
this.userImages.push({ img: res.data });
}
})
}
在 for 循环之前创建新变量并存储响应中的 postId。比请求检查这个变量。如果为空 - 跳过,如果没有 - 发送
以下代码段将依次执行每次上传,每次都更新 this.postId
值。使用箭头函数 this
上下文被保留。
(如果您的 this.http.uploadImages
方法已经 returns 一个 promise,您不需要实例化一个新的)
const upload = async () => {
for (let i = 0; i < e.target.files.length; i++) {
await new Promise((resolve, reject) => {
this.http
.uploadImages(e.target.files[i], 'UploadImage', this.postId)
.subscribe((res: any) => {
if (res.status) {
this.postId = res.data.post_id;
this.userImages.push({img: res.data});
resolve();
} else {
reject();
}
});
});
}
};