인프런 커뮤니티 질문&답변
Promise.all
작성
·
221
0
const images=await Promise.all(req.body.image.map((image)=>Image.create({src:image})));//디비에 사진주소를 넣어줌
await Promise.all(hashtag.map((tag)=>Hashtag.findOrCreate({
where:{content:tag.slice(1).toLowerCase()}}
)));
이런 경우는 어떤 경우에 쓰는건지 감이 잘 안잡히네요
정확하게 Promise.all을 어떤 경우에 쓰게 되는 건지 , 비동기적 상황에서 모든 처리가 완료될때 까지 기다리는건가요 ? await을 동시에 여러번 하는거다고 생각해야하는건지 ,,,ㅠㅠ
답변 1
4
제로초(조현영)
지식공유자
req.body.image가 [이미지1, 이미지2]라고 해볼게요.
.map((image) => Image.create({ src: image })를 하게 되면
[create({ src: '이미지1' }), create({ src: '이미지2' })]가 됩니다.
create는 Promise이므로 await을 해주어야 하는데 보통 Promise의 배열은 Promise.all로 await을 해줍니다.
await Promise.all까지 하게 되면 모든 Promise가 완료될때까지 기다립니다. 기다린 후에 결과가 변수에 들어갑니다.
결과로 [등록된이미지1, 등록된이미지2]가 나옵니다.




