async.each
имеет смысл, только если вы хотите выполнить один запрос за другим, а затем вам нужно вызвать cb()
, чтобы цепочка продолжалась:
async.each(array, (item, cb) => { // <- arrow func!
axios.get(`/http://api.com?keyword=${item}`)
.then(res => {
apiData.push(res.data);
this.setState({ stateData: apiData });
cb(); // <---
});
});
Или выполнить все параллельно (что, вероятно, намного быстрее):
const promises = array.map(item => axios.get(`/http://api.com?keyword=${item}`).then(res => res.data));
Promise.all(promises).then(stateData => {
this.setState({ stateData });
});
PS: вы всегда должны обрабатывать ошибки в обещании, поэтому просто прикрепите .catch(/*..*/)
к цепочке ...,