我有多个帖子请求,例如=>
for (var i = 0; i < this.state.selectedRowKeys.length; i++) {
var rowid = this.state.selectedRowKeys[i];
let savevalue = {
id: rowid,
}
queries.push(this.approve_leave(savevalue));
}
Promise.all(queries).then(function (values) {
console.log("done");
});
this.selectData();
}
approve_leave(savevalue) {
leave_api.leave_approve(savevalue).then(res => {
if (res.status === "fail") {
return false;
}
return true;
})
}
我调用了此发布API请求,并且在完成所有发布请求之后,我只是从数据库中重新选择并在表中显示更新记录。
但是现在我单击保存按钮后,它不会显示表中的刷新数据,但是如果我重新加载页面,它会显示刷新数据。
Promise.all等待所有发帖请求,但
就我的情况而言,为什么不等待所有请求并继续选择?
这里是API请求=>
export const leave_approve = leave => {
return axios
.put(
"http://127.0.0.1:8000/api/leave/leave_approve/",
{ leave },
{
headers: {
"Content-Type": "application/json"
}
}
)
.then(res => res.data)
.catch(error => {
throw error;
});
};
我在一段时间内陷入了promise环回问题,现在我只需要asyn-await
,即可完成上述所有工作。
样品:
async function something(){ // Should declare async in the method declaration to use await
// Below code waits till it is finished executing because we used await
await axios
.put(
"http://127.0.0.1:8000/api/leave/leave_approve/",
{ leave },
{
headers: {
"Content-Type": "application/json"
}
}
)
.then(res => res.data)
.catch(error => {
throw error;
});
}