k8w-super-promise
Version:
Promise with cancel and always
28 lines (27 loc) • 1.21 kB
TypeScript
/**
* @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>;
}