Javascript Axios:上传到s3在上传完成前解析
我正在通过一个签名的url将图像上传到s3。承诺立即解决,但上传继续。我知道上传完成的唯一方法是检查是否将上传进度与文件大小进行比较。我认为这不是应该做的事情。我遗漏了什么吗 这是我的代码Javascript Axios:上传到s3在上传完成前解析,javascript,reactjs,amazon-web-services,amazon-s3,axios,Javascript,Reactjs,Amazon Web Services,Amazon S3,Axios,我正在通过一个签名的url将图像上传到s3。承诺立即解决,但上传继续。我知道上传完成的唯一方法是检查是否将上传进度与文件大小进行比较。我认为这不是应该做的事情。我遗漏了什么吗 这是我的代码 import { API } from "aws-amplify"; ... const post = async e => { e.preventDefault(); setIsSubmitting(true); let params = { body: { conte
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)
这也是一个承诺。也许你可以在这个承诺之后再打电话
axios.put(response.url, values.file, options).then(response => {
console.log("Successfully created post.");
console.log(response);
})
谢谢你,成功了。我错误地使用了承诺链。而不是你的建议(.then in a.then)我只需要在axios前面放一个回车键。放…没问题,哦,是的,那更合适。我也有点难以兑现承诺