Я пытаюсь сделать несколько запросов, используя функции all()
и map()
, и если результат приходит и имеет ожидаемую форму, я хочу вызвать другое действие, чтобы сохранить результат в моем магазине.
Вот часть моей саги, но она не работает должным образом - getAvailabilityRequest
не выполняется.
yield all(
part1.map((p1) => {
return part2.map((p2) => {
return tld.map((t) => {
const response = call(getAvailabilityRequest, `${p1}${p2}.${t}`);
if (response && isAvailabilityResult(response)) {
const index: AvailabilityIndex = { part1: p1, part2: p2, tld: t };
return put(setAvailabilityActionCreator({ index, item: response }));
}
});
});
})
);
Также я попытался это
const response = yield all(
part1.map((p1) => {
return part2.map((p2) => {
return tld.map((t) => {
return {index: { part1: p1, part2: p2, tld: t }, result: call(getAvailabilityRequest, `${p1}${p2}.${t}`)};
});
});
})
);
, чтобы сохранить данные о index
, но все же getAvailabilityRequest
не вызывается. Есть ли способ изменить сагу, чтобы получить ожидаемые результаты?