• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

Promise All 질문

20.03.22 16:59 작성 조회수 118

0

노드 강좌에서 

PromiseAll 에 Promise 객체들을 넣는것 까지는 알았는데

크롤러 강좌중에 

Promise.all 해서 안에다 Map함수를 쓰는 코드는 어떻게 이해해야 하죠? map에서 프로미스 객체를 리턴하는것도 아닌데, promise.all 이 알아서 await 부분이 있는 모든 Promise객체를 모아서 처리하나요? 

    await Promise.all(
      records.map(async (r, i) => {
        try {
          const page = await brs.newPage();
          await page.goto(r[1]);
          const scoreEl = await page.$(".score.score_left .star_score");
          if (scoreEl{
            const text = await page.evaluate(tag => tag.textContent, scoreEl);
            console.log(r[0], "rate", text.trim());
          }
          await page.close();
        } catch (e{
          console.error(e);
        }
      })
    );

답변 1

답변을 작성해보세요.

0

map 안에 async 함수가 들어있는데 async함수는 기본 return값이 Promise.resolve(undefined)입니다. 이 값들이 map에 모여서 한 번에 해결됩니다.