비동기 함수를 프로미스로 변환하기

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 promisify 함수를 사용하여 비동기 함수를 프로미스 (Promise) 를 반환하도록 변환하는 방법을 배웁니다. 이를 통해 콜백 함수를 피함으로써 더 깔끔하고 읽기 쉬운 코드를 작성할 수 있습니다. 또한 JavaScript 에서 커링 (currying) 과 나머지 연산자 (rest operator) 의 사용법도 살펴봅니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 82%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Promisify 함수

비동기 함수가 프로미스 (Promise) 를 반환하도록 변환하려면 다음 단계를 따르세요.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.
  2. 커링 (currying) 을 사용하여 원래 함수를 호출하는 Promise를 반환하는 함수를 반환합니다.
  3. 나머지 연산자 (...) 를 사용하여 모든 매개변수를 전달합니다.
  4. Node 8+ 를 사용하는 경우 util.promisify를 사용할 수 있습니다.
  5. 다음은 코드 예시입니다.
const promisify =
  (func) =>
  (...args) =>
    new Promise((resolve, reject) =>
      func(...args, (err, result) => (err ? reject(err) : resolve(result)))
    );
  1. 이 함수를 사용하려면 비동기 함수를 정의하고 promisify 함수에 매개변수로 전달합니다. 이제 반환된 함수는 프로미스를 반환합니다.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // Promise resolves after 2s

delay 함수는 promisify 함수를 사용하여 이제 프로미스를 반환하는 비동기 함수의 예입니다.

요약

축하합니다! Promisify Function 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.