user = yield fetch(`https://api.github.com/users/${action.name}`);
                  
                  
                      user = yield user.json();
                  
                  
                      yield put({ type: 'FETCH_USER_SUCCESS', user, id: action.id });
                  
                  
                    } catch (error) {
                  
                  
                      yield put({ type: 'FETCH_USER_ERROR', error, id: action.id });
                  
                  
                    }
                  
                  
                  }
                  
                  
                  
                  
                  
                  function* initSagas() {
                  
                  
                    yield takeLatest('FETCH_USER', saga);
                  
                  
                  }
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  async function fetchUser({ name, id }) {
                  
                  
                    try {
                  
                  
                      let user = await fetch(`https://api.github.com/users/${name}`);
                  
                  
                      user = await user.json();
                  
                  
                      store.dispatch({ type: 'FETCH_USER_SUCCESS', user, id });
                  
                  
                    } catch (error) {
                  
                  
                      store.dispatch({ type: 'FETCH_USER_ERROR', error, id });
                  
                  
                    }
                  
                  
                  }
                  
                  
                  
                  
                  
                  в чем разница?
                  
                  
                
1) в том, что на сагу тесты пишутся одной рукой а с async fetchUser я с удовольствием посмотрел бы на твои тесты 2) что ты будешь делать, если с задержкой 50 мс произойдёт два вызова твоей async fetchUser? на сагах я возьму takeLatest и буду пить маргариту на пляже
1. Саги говно 2. Ты мне это хочешь сказать? Вместо санков юзать такие функции?
user = yield user.json(); вот тут неправильно саги, они не так просты, как кажется
let user = yield fetch(`https://api.github.com/users/${action.name}`); тут тоже херня написана
Обсуждают сегодня