如何等待所有发布请求

问题描述 投票:0回答:1

我有多个帖子请求,例如=>

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;
    });
};
post axios
1个回答
0
投票

我在一段时间内陷入了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;
    });
}

https://javascript.info/async-await

© www.soinside.com 2019 - 2024. All rights reserved.