为什么axios返回promise而不是值?

时间:2019-04-17 17:54:58

标签: javascript axios es6-promise

我正在尝试从axios get请求中获取值,该请求位于存储在另一个文件postData.js中的函数中

const BaseURL = 'http://127.0.0.1:8000/api/';

export const getData = (location) => {

  return axios.get(`${BaseURL}${location}`).then(res => res.data)
  .then((data) => {
    return data;
  })
}

在console.log(getData('menu /'))中,在其他文件的组件中,我期望来自axios的值,而不是得到一个promise对象。

2 个答案:

答案 0 :(得分:0)

Axios确实返回了Promise对象,以便处理外部API调用的异步性->您将无法预测发出请求的确切时间,因为它取决于外部因素。因此,您可以使用async / await.then处理返回值。

答案 1 :(得分:0)

根据AXIOS的git repo- 基于Promise的HTTP客户端,用于浏览器和node.js ,因此它正在返回承诺。

由于axios以更简单的方式从浏览器实现XMLHttpRequest,而XMLHttpRequests本质上应该是异步的。因此,诺言是处理方案的最佳方法。 enter image description here