TypeScript의 7줄로 Node의 Promisify 유형 안전 버전을 구현합니다.
2821 단어 typescriptjavascriptnode
type Callback<A> = (args: A) => void;
const promisify = <T, A>(fn: (args: T, cb: Callback<A>) => void): ((args: T) => Promise<A>) =>
(args: T) => new Promise((resolve) => {
fn(args, (callbackArgs) => {
resolve(callbackArgs);
});
});
유형 추론이 작동하는 것을 보여주는 this video을 확인하십시오!
원래 함수의 인수와 콜백 함수의 인수에 대해 일반적으로 이 함수를 구현하기 위해 유형 변수
T
및 A
를 사용하고 있습니다.수업 과정:
fn
의 두 번째 인수에 대해 인라인 익명 함수를 정의해야 했습니까? 다른 방법으로 호출할 수 있었습니까fn
? Callback
유형은 많은 노드 API에서와 같이 일반적인 오류 우선 콜백이 아닙니다(이는 내가 약속하려는 함수가 오류 우선 콜백이 아니기 때문입니다). 따라서 오류 우선 콜백의 오류가 null이 아닌 경우 내 promisify
함수를 reject
로 리팩토링하는 연습으로 남겨 보겠습니다. Reference
이 문제에 관하여(TypeScript의 7줄로 Node의 Promisify 유형 안전 버전을 구현합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)