即使使用.then(),Promise仍在等待处理中

时间:2019-04-23 16:03:13

标签: javascript reactjs asynchronous promise

我正在使用axios从我的后端检索数据,但诺言仍未完成。

我已经使用.then()甚至异步并等待。我正在使用.then(res => res.data),因为我知道每个Promise都有保存检索到的数据的“数据”键,之后它将以这种方式返回。我还将该函数绑定到了构造函数中!

async getTrackInfo() {
  return await axios.get('http://localhost:60231/api/values')
    .then(res => res.data);
};


componentDidMount() {
  const data = this.getTrackInfo();
  console.log(data);

  this.setState({
    tracks: data
  });
}

但是不幸的是,它返回的是undefined。

1 个答案:

答案 0 :(得分:-1)

以下代码将起作用:-

async getTrackInfo() {
  return await axios.get('http://localhost:60231/api/values')
    .then(res => res.data);
};


async componentDidMount() { // Make this function async
  const data = await this.getTrackInfo(); // add await here
  console.log(data);

  this.setState({
    tracks: data
  });
}