Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么axios回报的是承诺而不是价值?_Javascript_Axios_Es6 Promise - Fatal编程技术网

Javascript 为什么axios回报的是承诺而不是价值?

Javascript 为什么axios回报的是承诺而不是价值?,javascript,axios,es6-promise,Javascript,Axios,Es6 Promise,我试图从另一个文件postData.js中存储的函数中的axios get请求中获取值 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; }) }

我试图从另一个文件postData.js中存储的函数中的axios get请求中获取值

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获得值,而不是获得承诺对象。

axios确实返回承诺对象,以处理外部API调用的异步性-->您无法预测发出请求所需的确切时间,因为这取决于外部因素。因此,您可以使用
async
/
wait
。然后
处理它的返回。

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

因为axios以更简单的方式从浏览器实现XMLHttpRequests,XMLHttpRequests本质上应该是异步的。因此,承诺是处理这些情况的最佳方式。

因为承诺是异步的。当您记录日志时,您对函数执行同步操作,因此您得到函数返回的内容,这是一个承诺。这个承诺可能最终会解析为数据,但它被封装到这个异步对象中。@pukar17您能在postData.js中发布函数吗?因为网络请求是自然异步的。Axios返回承诺,因为这是表示“当前未解决的问题,但无论成功与否,最终都会解决”的最佳方式。
。然后,
始终返回承诺。不能让异步进程(网络请求)同步返回值。