Я не могу использовать сагу редукса во вложенных массивах? - PullRequest
0 голосов
/ 20 апреля 2020

Последняя попытка в redux-saga не работает. У меня очень странный API, который выдает информацию маленькими битами, и мне нужно go вниз на один шаг за раз, чтобы получить информацию. API - https://pokeapi.co/docs/v2.html/#pokemon

function* getPokemonsAsync() {
      //works normal
      const pokemons = yield call(pokemonAPI.getPokemonsFromBackend);
      //works normal
      const pokemonDetails = yield all(pokemons.results.map((pokemon) => {
        return call(pokemonAPI.getPokemonDetails, pokemon.name);
      }));
      //works normal
      const pokemonDetailsAndAbilities = yield all(pokemonDetails.map((pokemon) => {
        const abilities = () => call(pokemonAPI.getPokemonAbilities, pokemon.name);
        return pokemon.abilities = abilities();
      }));
      //doesnt work
      const details = yield all(pokemonDetailsAndAbilities.map((pokemon) => {
        return pokemon.abilities.map((ability) => {
          const abDet = () => call(pokemonAPI.getAbilityDetails, ability.ability.name);
          return pokemon.details = abDet();
        })
      }))
      console.log(details)
      yield put(ACTIONS.setPokemons(pokemonDetailsAndAbilities));
    }

    export function* watchGetPokemons() {
      yield takeEvery(TYPES.FETCH_POKEMONS, getPokemonsAsync);
    }
...