export function* watchFetchImage() {
yield takeEvery('FETCH_NEW_IMAGE', fetchImageAsync);
}
function* fetchImageAsync(index) {
try {
yield put(requestNewImage());
const data = yield call(() => {
return fetch('https://api.giphy.com/v1/gifs/random?api_key=gR30u9O8KPOanwIQupHbD90d4k57EOeY')
.then(res => res.json().data.images.index)
}
);
Половина смысла саг в том, что они позволяют удобно тестировать код. Такой код убивает эту фичу. Вот так будет лучше // utils const jsonFetch = (...args) => fetch(...args).then(r => r.json()); // логика put(requestNewImage()); const data = yield call(jsonFetch, 'url...'); data.images.index
Обсуждают сегодня