Fetch 为空 Redux Saga
Fetch is empty Redux Saga
我 5 分钟前才开始学习 Redux Saga
我的传奇:
import axios from "axios";
import {call, put, takeLatest} from "redux-saga/effects";
import {
USERS_FETCH_REQUESTED,
USERS_FETCH_SUCCEEDED,
USERS_FETCH_FAILED
} from 'actions/constants'
function *fetchUsers(action) {
try {
const response = yield call(fetch, 'https://jsonplaceholder.typicode.com/users');
const data = response.json();
console.log(data)
yield put({type: USERS_FETCH_SUCCEEDED, payload: data});
} catch (e) {
yield put({type: USERS_FETCH_FAILED, payload: e.message});
}
}
function* mySaga() {
yield takeLatest(USERS_FETCH_REQUESTED, fetchUsers);
}
export default mySaga
出于某种原因,我的 SUCCES_FETCH 的有效负载只是一个空对象,但日志返回 10 10 个项目。
我做错了什么?
response.json()
returns一个promise,需要等待promise resolve才能拿到物品
const data = yield call([response, 'json']);
这将产生调用 response.json()
的效果,并在 promise 解析后将结果反馈到 saga。
我 5 分钟前才开始学习 Redux Saga
我的传奇:
import axios from "axios";
import {call, put, takeLatest} from "redux-saga/effects";
import {
USERS_FETCH_REQUESTED,
USERS_FETCH_SUCCEEDED,
USERS_FETCH_FAILED
} from 'actions/constants'
function *fetchUsers(action) {
try {
const response = yield call(fetch, 'https://jsonplaceholder.typicode.com/users');
const data = response.json();
console.log(data)
yield put({type: USERS_FETCH_SUCCEEDED, payload: data});
} catch (e) {
yield put({type: USERS_FETCH_FAILED, payload: e.message});
}
}
function* mySaga() {
yield takeLatest(USERS_FETCH_REQUESTED, fetchUsers);
}
export default mySaga
出于某种原因,我的 SUCCES_FETCH 的有效负载只是一个空对象,但日志返回 10 10 个项目。
我做错了什么?
response.json()
returns一个promise,需要等待promise resolve才能拿到物品
const data = yield call([response, 'json']);
这将产生调用 response.json()
的效果,并在 promise 解析后将结果反馈到 saga。