【发布时间】:2020-09-02 03:56:09
【问题描述】:
我正在发出一个大约需要 10 秒才能完成的 POST 请求...但我的警报会在单击时立即显示,然后服务器返回 200。为什么?以及如何修复它以等待服务器完成操作?
const handleClick = async () => {
const response = await fetch("/create", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(highlights),
}).then(alert("hi!"));
};
如果我将 .then 更改为
.then(() => {alert("hi!");}) 如下所示,在发出服务器请求时页面会闪烁/似乎刷新但警报根本不显示
更新:
如果我使用此代码:
const handleClick = async () => {
try {
const response = await fetch("/create", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(highlights),
});
alert("first");
} catch (error) {}
alert("second");
};
第二个警报在按钮被按下时立即触发,第一个警报永远不会触发。
【问题讨论】:
标签: javascript reactjs flask async-await fetch