我是 Reactjs 的新手。我创建了一个应用程序来将多个文件上传到 aws s3。我正在使用循环上传所有文件。我还需要从上传的文件中获取响应,例如文件名。这是我到目前为止所拥有的:
const handleClick = async (event) => {
event.preventDefault();
let newArr = fileInput.current.files;
for (let i = 0; i < newArr.length; i++) {
const file = newArr[i]
let newFileName = file.name.replace(/\..+$/, "");
const ReactS3Client = new S3(config);
ReactS3Client.uploadFile(file, newFileName).then((data) => {
if (data.status === 204) {
console.log( data.key);
} else {
console.log("fail");
}
});
}
};
经过大量的谷歌搜索后,我将异步添加到我的 handleclick。我超级困惑。谁能告诉我如何等待循环完成?或者只是等待 handClick 完全执行?如果我尝试将其打印出来,我的密钥也会显示未定义。我只能在handleUpload 中的.then 中得到响应。但是我需要等待所有键才能进行另一个 api 调用和更改页面。任何帮助表示赞赏。