UNPKG

k8w-super-promise

Version:
28 lines (27 loc) 1.21 kB
/** * @author k8w * email: me@k8w.io */ import 'core-js/es/promise/finally'; export declare class SuperPromise<T, TError = never> implements Promise<T> { readonly [Symbol.toStringTag] = "SuperPromise"; protected _promise: Promise<any>; /** have been rs or rj */ isCompleted: boolean; isAborted: boolean; constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason: any) => void) => void); /** * Abort event * @param handler */ onAbort?: () => void; /** * 立即取消该Promise * 如果取消成功或之前已经取消,则返回true * 如果取消失败(已经resolve或reject),则返回false */ abort(): boolean; then<TResult1 = T, TResult2 = TError>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): SuperPromise<TResult1, TResult2>; catch<TResult = TError>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): SuperPromise<T | TResult>; finally(onfinally?: (() => void) | undefined | null): SuperPromise<T>; }