我想要做的是将文件上传到服务器上,然后获取上传文件的 URL 并预览它。文件可以有多个。为此,我编写了以下代码:
let filesURL=[];
let promises=[];
if(this.state.files_to_upload.length>0) {
for(let i=0; i<this.state.files_to_upload.length; i++) {
promises.push(this.uploadFilesOnServer(this.state.files_to_upload[i]))
}
Promise.all(promises).then(function(result){
console.log(result);
result.map((file)=>{
filesURL.push(file);
});
});
console.log(filesURL);
}
const uploadedFilesURL=filesURL;
console.log(uploadedFilesURL);
Run Code Online (Sandbox Code Playgroud)
console.log(filesURL);给我返回的值Promise.all。
我只想在Promise.all正确完成时使用这些值。但是,我面临的问题是线路console.log(uploadedFilesURL);首先执行,而不考虑Promise.all并给我undefined价值。我认为我没有正确使用承诺,有人可以帮助我吗?
uploadFileOnServer代码是:
uploadFilesOnServer(file)
{
let files=[];
let file_id='';
const image=file;
getImageUrl().then((response) => {
const data = new FormData();
data.append('file-0', image);
const {upload_url} = JSON.parse(response);
console.log(upload_url);
updateProfileImage(upload_url, data).then ((response2) => {
const data2 = JSON.parse(response2);
file_id=data2;
console.log(file_id);
files.push(file_id);
console.log(files);
});
}); …Run Code Online (Sandbox Code Playgroud)