반응형
TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
= forEach를 쓰지않았나 확인
여러 데이터를 db에 저장해야하는데, 모두 다 완료되면 테이블을 한번만 reload해야하는 상황이 옴. 그래서 Promise.all을 활용하여 모든 요청이 완료된 이후 뭔가 동작하도록 했는데 자꾸 위와 같은 에러가 떠서 찾아보니 forEach문은 원래 return undefined을 하기때문에 다르게 쓰라고해서 map이나 다른걸로 사용했더니 에러가 사라짐.
Promise.all(
dataArray.map(async (data) => {
return axios
.post("/api/user/add", {
userId: data.userId
})
})
).then(() => {
// 최종적으로 완료했을때 오는곳
});
// 아님 객체에 담으려면 이렇게
let promises = await dataArray.map((data) => axios.post("어쩌고"));
await Promise.all(promises).then(() => {
// 최종적으로 완료했을때 오는곳
})
---
'Javascript' 카테고리의 다른 글
iframe 내에서 일부 폰트가 적용되지 않을 때 (0) | 2023.01.17 |
---|---|
Blob 쓸 때 에러문구 (0) | 2023.01.13 |
음수 숫자를 양수로 바꾸기 (0) | 2022.10.11 |
배열에서 중복된 값 제외하는 방법 (0) | 2022.09.29 |
공백/텍스트없는 태그 유니코드로 잡아내기 (0) | 2022.08.24 |