react-native - 如何在 Fetch 的 promise 链之外获取响应数据?

标签 react-native promise es6-promise fetch-api

<分区>

我正在使用 fetchApi 从我的 API 获取数据。 在我的 RequestHelpers.js 中,我执行以下代码

module.exports = {
    fetchQuizCollection(){
      return fetch(HOST+API_KEY)
        .then((response) => response.json())
        .then((responseData) => {
          let gameData = responseData
          console.log(responseData) //It work
          return responseData
        })
      .done();
    }
}

我在另一个文件中调用该函数,我无法获得我的 responseData

    let sampleQuiz = RequestHelpers.fetchQuizCollection()
    console.log(sampleQuiz) //undefined 

有什么方法可以获取 promise 之外的数据吗?

最佳答案

您将异步代码视为同步代码。 fetchQuizCollection() 是异步的,因此它返回的数据在您的日志代码运行时不可用。您必须等到所有 .fetch() 函数完成。

只需让 fetchQuizCollection() 通过添加另一个 return 返回一个 promise ,如下所示

return fetchQuizCollection(){
  return fetch(HOST+API_KEY)
    .then((response) => response.json())
    ...

并且您可以在 .then() 函数中访问 sampleQuiz

let sampleQuiz = RequestHelpers.fetchQuizCollection()
    .then((sampleQuiz) => {
        console.log(sampleQuiz);
    });

关于react-native - 如何在 Fetch 的 promise 链之外获取响应数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41263986/

相关文章:

javascript - React Native Fetch API 不返回我的调用

react-native - 尝试使用 Storybook 构建 React Native 应用程序时卡在启动屏幕上

android - 使用 React Native 的纵向锁定 Android 应用程序中的方向感知模态

javascript - loadData() 返回空数组

javascript - JS async/await 不等待我的函数解决它们的 promise

javascript - "Then"Promise后没有执行

ios - 如何创建 Objective-C 桥接头文件?

angularjs - 如何获取 angular $interval 的状态 - 检查间隔是否已取消

javascript - React.JS = Promise/Fetch API 有重复代码,我如何捆绑到它自己的函数中

javascript - 尝试从 ES6 类函数解析 promise 链