Mongodb를 사용해서 데이터를 받아오면서,
너무 많은 데이터를 받아와야하는(그런 줄로만 알고 있던....ㅎ) 상황이 생겼다.
엔드포인트에서 자그마치 100번...(50개의 데이터를 보내주어야 해야하는데, 각각의 데이터를 보내줄 때, 끼워 넣어야 할 2가지 정보가 있었다.)이나.. 보내야할 일이 생겨버렸다.
이때 든 생각이
Promise.all을 이용하자
였다.
다른 코드를 보다가 new Promise(...)를 사용하는 것을 인상깊게 보았기에,
그것을 사용해보기로 했다.
Promise.all([1,2])
하여서 동시에 요청을,....
짜보려고 하니까 코드가 엄청 복잡해졌다.
결국에는 다른 훨~씬 효율적인 방식이 있었기에 코드를 싹 지워버렸지만
기억을 토대로 조금 써넣으려고 한다.
덕분에 promise에 대해서 조금 자신이 생겼기 때문.
(자랑스러운 코드는 아니다... 짜고나서 아직 부족하다는 것을 많이 느꼈다.)
await Promise.all(arr.map((el)=>{
return new Promise((res,rej)=>{
const { id } = el
const p = new Promise((res,rej)=>{
const result = user.findOne(id)
resolve(result)
})
const k = new Promise((res,rej)=>{
const result = park.findOne(id)
result result
})
const x = Promise.all([p,k])
let obj = {}
obj.cate = x[0].cate
obj.loc = x[1].loc
resolve(obj)
})
}))