English
Appearance
function promiseTry<F extends AnyFn>(fn: F, ...args: Parameters<F>): Promise<Awaited<ReturnType<F>>>
该函数用于执行某一个函数并返回Promise。当传入函数为同步代码时也会同步执行,避免了Promise.resolve的问题
Promise.resolve
当原生支持Promise.try时直接调用原生实现,否则回退到polyfill。
Promise.try
const { promise, resolve, reject } = withResolvers();
该函数用于创建一个Promise对象,并获得它的resolve和reject函数,避免了自己像下面这样手动创建
resolve
reject
let resolve, reject; const promise = new Promise((res, rej) => { resolve = res; reject = rej; });
当原生支持Promise.withResolvers时直接调用原生实现,否则回退到polyfill。
Promise.withResolvers
相较于原生实现,本函数添加了一些额外内容。为方便重命名返回的变量,withResolvers返回的对象为可迭代对象,这意味着你可以像下面这样使用数组解构,以便你自己确定变量名
withResolvers
const [promise, resolve, reject] = withResolvers();