[英]Axios: Uploading to s3 resolves before upload finishes
我正在通过签名的URL将图像上传到s3。 承诺会立即以undefined解析,但上传会继续。 我知道上载完成的唯一方法是检查是否将上载进度与文件大小进行比较。 我不认为这是应该做的方式。 我有什么想念的吗?
这是我的反应代码。
import { API } from "aws-amplify";
...
const post = async e => {
e.preventDefault();
setIsSubmitting(true);
let params = { body: { content: values.text } };
if (values.file) params.body = { ...params.body, img: values.file.name };
API.post(API_NAME, POST_URL, params)
.then(response => {
if (!params.body.img) {
history.push(`/${username}`);
return;
}
const options = {
headers: { "Content-Type": "image/*" },
onUploadProgress: progressEvent => console.log(progressEvent.loaded)
};
console.log(`Uploading file to ${response.url}`);
axios.put(response.url, values.file, options);
})
.then(response => {
console.log("Successfully created post.");
console.log(response);
})
.catch(err => {
alert(err.message);
setIsSubmitting(false);
});
};
axios.put(response.url, values.file, options)
这也是一个承诺。 也许您可以在此承诺后链接then呼叫。
axios.put(response.url, values.file, options).then(response => {
console.log("Successfully created post.");
console.log(response);
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.