강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

song님의 프로필 이미지
song

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

리트윗하기

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]가 나옵니다.

song님의 프로필 이미지
song

작성한 질문수

질문하기