有了这五个方法,轻松处理异步任务( 二 )


文章插图
对于不支持 Promise.withResolvers() 方法的环境,我们可以通过通过自定义函数来实现对应的功能 。比如,TypeScript 源码中 , 定义了一个 defer 函数来实现 Promise.withResolvers()  方法同样的功能 。
export function defer<T = void>(): Deferred<T> {let resolve!: (value: T | PromiseLike<T>) => void;let reject!: (reason: unknown) => void;const promise = new Promise<T>((_resolve, _reject) => {resolve = _resolve;reject = _reject;});return { resolve, reject, promise };}



推荐阅读