Javascript 如何在返回值之前完全解析axios/fetch call/promise?

Javascript 如何在返回值之前完全解析axios/fetch call/promise?,javascript,fetch,axios,es6-promise,Javascript,Fetch,Axios,Es6 Promise,我有一个函数 function getData(foo) { return axios.get(url+foo) .then(response => response.baz) .catch(error => console.log(error)) } 在我代码的其他地方我称之为 function baz() { //.... document.getElementById('bar').textContent = getData() //.... } 但随后

我有一个函数

function getData(foo) {
 return axios.get(url+foo)
  .then(response => response.baz)
  .catch(error => console.log(error))
}
在我代码的其他地方我称之为

function baz() {
  //....
  document.getElementById('bar').textContent = getData()
 //....
}
但随后,我的元素中出现了
[objectpromise]
的文本

为什么会发生这种情况?如何确保在不使用async/await的情况下只插入真值

您的
getData()
函数返回一个承诺。因此,在调用
getData()
时,您需要使用
wait
.then
链。如果可以,我建议您使用
wait
。如果您执行以下操作,请确保将您的
baz
声明为
async

async function baz() {
  //....
  document.getElementById('bar').textContent = await getData();
 //....
}
如果您不想使用
等待
,请拨打
,然后像这样

function baz() {
  //....
  getData().then(data => {
     document.getElementById('bar').textContent = data;
  }

 //....
}

“为什么会发生这种情况”-因为您正在从
getData()
返回一个承诺。“如何确保只插入真实值?”-如果不想使用
异步
/
等待
,请使用
。然后(…)
和回调。您无法立即从未来访问该值。那么,我是否正确地假设我不需要
getData()
函数中的
then()
?如果我像你建议的那样只使用
then()
,这似乎有些过时。我的意思是,如果我像
getData().then()
那样使用
then()
,我还需要
baz()
中的
then()
?正确,需要确保数据转换在getData()中处理。then()。