반복문을 통한 비동기요청

dev.dave·2023년 7월 24일

Javascript

목록 보기
24/167

// 여러개의 url 에, fetch 요청을 보내는 방법은 다양합니다. 아무래도 반복처리를 해야하기 때문에
// 고차함수들 즉, promise.all, foreach, for-of .. 써야되겠죠.
// 그런데 동작결과는 완전히 다를 수 있다는 점!

  const baseURL = "https://jsonplaceholder.typicode.com/todos/";
  const urls = [1, 2, 5, 10];

  (function () {
    urls.forEach(async (url) => {
      console.log(`{${url}요청 시작}`);
      const res = await fetch(baseURL + url);
      const result = await res.json();
      console.log(`{${url}요청 끝!}`);
    });
    console.log("전체 요청 끝!");
  })();
  //위 코드는 그냥 병렬적으로 실행된다.
  //forEach자체가 원래 그냥 비동기가 있던말던, 코드를 실행시킨다. 그냥 콜백만 실행시켜주면 끝이다.
  //forEach 역할은 콜백함수를 실행시키는 것이다.
  //시간차를 두고 실행되게 하려면

  (async function () {
    for (let url of urls) {
      console.log(`{${url}요청 시작}`);
      const res = await fetch(baseURL + url);
      const result = await res.json();
      console.log(`{${url}요청 끝!}`);
    }
    console.log("전체 요청 끝!");
  })();
  // 그냥 for of 로 하면 직렬로 비동기 요청이 가능하다.
profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글