reactjs - Yield 调用返回一个 promise

标签 reactjs react-redux redux-saga saga

所以我正在尝试学习 react-redux-saga。我正在构建一个简单的应用程序,它只是从 API 中获取用户数据并显示它。这是我传奇中的生成器函数:

export function* fetchImage() {
      try {
        const response = yield call(fetch, 'https://randomuser.me/api/');
        console.log("Response 111", response);
        const responseBody = response.json();
        yield put(setImage(response));
      } catch (e) {
        yield put(fetchFailed(e));
      }
      return;

    }

它只是简单地对一个 url 进行 yield 调用,然后调度一个 Action 。但是,响应对象并没有以 JSON 形式返回,而是看起来像是返回了一些响应对象:

enter image description here

我不确定如何处理这个对象。如果您直接通过浏览器点击 URL,它将返回一个 JSON 对象。如何让它返回 JSON?

所以我的 response.json() 正在返回这个对象:

enter image description here

看起来我想要的对象在 [[PromiseValue]] 事物中。那是什么?如何实现我的值(value)?

最佳答案

在响应对象解析后,您始终可以访问它的主体:

const response = yield call(fetch, 'https://randomuser.me/api/'); const responseBody = yield response.json();//这里就是你想要的

关于reactjs - Yield 调用返回一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996080/

相关文章:

javascript - 如何测试 React.js 组件外观?

javascript - 如何从 componentDidMount() (而不是 componentDidUpdate())更新 DOM 中的状态对象?

javascript - 在 Redux 中,reducer 无法识别 action 对象

javascript - 如何从 saga 获取 action.params

reactjs - React Navigation 5,登录后阻止返回导航

reactjs - react-select 不会自动滚动到所选选项

javascript - 从react-js-pagination获取分页器以显示在页面上

redux - Redux Toolkit 和 Redux Saga 可以一起使用吗?

javascript - 测试代码覆盖 javascript es6 生成器 (redux-saga/istanbul.js)

javascript - 无法使用react@16.4.2组件和webpack加载静态图像