Мой вариант использования.
- Я загружаю 5 изображений на сервер s3 в браузере и получаю URL-адреса для загруженных изображений.
- Передача, которая обращается кback-end.
Это моя асинхронная функция
try{
await uploadImagesToS3(imagesArray);
await saveUrlsInBackend();
}catch(error){
}
В моей uploadImagesToS3 функции я пытаюсь сделать что-то вроде этого.
uploadImagesToS3(){
resolve(FORLOOP)
}
После запуска цикла 5 раз я хочу разрешить его в моей основной асинхронной функции.
Это моя настоящая uploadImagesToS3 функция
onUpload(array, albumName) {
return new Promise((resolve, reject) => {
resolve(
for (let index = 0; index < array.length; index++) {
var files = document.getElementById(array[index]).files;
if (!files.length) {
return alert("Please choose a file to upload first.");
}
var file = files[0];
var fileName = file.name;
var albumPhotosKey = encodeURIComponent(albumName) + "//";
var photoKey = albumPhotosKey + fileName;
self;
s3.upload(
{
Key: photoKey,
Body: file,
ACL: "public-read"
},
(err, data) => {
if (err) {
return alert(
"There was an error uploading your photo: ",
err.message
);
}
// alert("Successfully uploaded photo.");
this.images[index].image_path = data.Location;
}
);
}
);
});
}
Но это не позволяет мне использовать цикл for внутри функции разрешения.Как я могу достичь этих асинхронных механизмов ожидания?