Во-первых, нет необходимости во вложенной сразу вызываемой функции, все, что нужно сделать, это проглотить возвращаемое значение.
Во-вторых, вы ожидаете массив обещаний, но этот массив не является обещанием. Вы должны заключить массив обещаний в вызов Promise.all
, чтобы ожидать каждого отдельного обещания в массиве.
useEffect(async () => {
const result = await Promise.all(newArray.map((item, index) =>
axios.get(`http://pokeapi.co/api/v2/pokemon/${index + 1}`)
)); // result will be an array of values (not promises)
setDataNew(result);
console.log(dataNew);
}, []);