Yield 调用返回一个承诺

Mat*_*aNg 3 saga reactjs redux-saga react-redux

所以我正在尝试学习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;

    }
Run Code Online (Sandbox Code Playgroud)

它只是对 url 进行一次yield 调用,然后分派一个操作。但是,响应对象不会以 JSON 形式返回,而是看起来返回一些响应对象:

在此输入图像描述

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

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

在此输入图像描述

看起来我想要的对象在 [[PromiseValue]] 中。那是什么以及我如何实现我的价值?

Tha*_*ran 6

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

const response = yield call(fetch, 'https://randomuser.me/api/'); const responseBody = yield response.json(); // HERE is what you want