Reactjs 等待异步响应

Reactjs 等待异步响应,reactjs,Reactjs,我有一个在列表循环中发送API请求的方法,在循环之后我想更新屏幕上的视图,但是这个更新并不是等待最后一篇文章的结束。有什么建议吗 async doPost(name) { return await axios.post("/api/data/" + name); } async doAction(dataList) { dataList.map(dt=> { const actionResponse = this.doPost(dt.name);

我有一个在列表循环中发送API请求的方法,在循环之后我想更新屏幕上的视图,但是这个更新并不是等待最后一篇文章的结束。有什么建议吗

async doPost(name) {
    return await axios.post("/api/data/" + name);
}

async doAction(dataList) {
    dataList.map(dt=> {
      const actionResponse = this.doPost(dt.name);
      if (actionResponse) {
        console.log("response: " + actionResponse);
        this.updateNotify(dt);
      }
  });
  this.UpdateView();
};

我想你错过了
this.doPost()之前的
wait
关键字


默认情况下,Axios library会返回类似对象的承诺-
AxiosPromise
, 因此,使函数“doPost”与其中的wait异步将导致
承诺
类型。这就是为什么我将其更改为非异步,因为这里不需要它

doPost(name) : AxiosPromise<any> {
     return axios.post("/api/data/" + name);
}

async doAction(dataList: { name: string }[]) {
    const dtData: AxiosPromise<any>[] = dataList
        .map(dt => axios.doPost(dt.name)) // creating all post requests
        .map(x => x.then(x => this.updateNotify(x))); // setting updateNotiFy to  execute when post request returns result

    // Makes sure all executions of post requests are done(resolved/rejected)
    await Promise.allSettled(dtData);

    this.UpdateView();
}
doPost(名称):AxiosPromise{
返回axios.post(“/api/data/”+名称);
}
异步doAction(数据列表:{name:string}[]{
const dtData:axiopromise[]=dataList
.map(dt=>axios.doPost(dt.name))//创建所有post请求
.map(x=>x.then(x=>this.updateNotify(x));//设置updateNotify以在post请求返回结果时执行
//确保完成所有post请求的执行(已解决/拒绝)
等待承诺。全部结算(dtData);
this.UpdateView();
}

但该位置的wait运算符未编译:wait运算符只能在异步函数中使用。但在循环中它不起作用,甚至未编译。我已更新了我的答案(未测试的代码),请查看。
doPost(name) : AxiosPromise<any> {
     return axios.post("/api/data/" + name);
}

async doAction(dataList: { name: string }[]) {
    const dtData: AxiosPromise<any>[] = dataList
        .map(dt => axios.doPost(dt.name)) // creating all post requests
        .map(x => x.then(x => this.updateNotify(x))); // setting updateNotiFy to  execute when post request returns result

    // Makes sure all executions of post requests are done(resolved/rejected)
    await Promise.allSettled(dtData);

    this.UpdateView();
}