javascript fetch 如何取到外面使用?(無使用框架)

function getData() {
      fetch(domainAPI).then(response => response.json()).then(res => {
        return res.data
      })
    }
    console.log(getData())
let data = ``
fetch(domainAPI).then(response => response.json()).then(res => {
        data = res.data
      })
console.log(data)

確定res.data回來的都有數據
這兩個方式我都試過了
需要大神求解

阅读 2.6k
2 个回答
function getData() {
  return fetch(domainAPI)
    .then((response) => response.json())
    .then((res) => {
      return res.data
    })
}
getData().then((data) => {
  console.log(data)
})

外头 console.log 的时候请求可能还没到后端,所以打印出来自然不是请求到的值。
因为网络请求是异步的,只能按异步的方式来,按照异步过程的写法:

;(async (){
    const data = await (
        await fetch(domainAPI)
    ).json();
    console.log('data:', data);
})();

在新版的浏览器中全局作用域貌似是可以 await 的,可以去掉外边的立即执行函数,这样一来就算真正的“拿到外边”了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题