You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.7 KiB
52 lines
1.7 KiB
// @flow |
|
|
|
declare class ThenPromise<+R> extends Promise<R> { |
|
constructor(callback: ( |
|
resolve: (result: Promise<R> | R) => void, |
|
reject: (error: any) => void |
|
) => mixed): void; |
|
|
|
|
|
then(onFulfill: null | void, onReject: null | void): ThenPromise<R>; |
|
then<U>( |
|
onFulfill: null | void, |
|
onReject: (error: any) => Promise<U> | U |
|
): ThenPromise<R | U>; |
|
then<U>( |
|
onFulfill: (value: R) => Promise<U> | U, |
|
onReject: null | void | ((error: any) => Promise<U> | U) |
|
): ThenPromise<U>; |
|
|
|
|
|
catch(onReject: null | void): ThenPromise<R>; |
|
catch<U>( |
|
onReject: (error: any) => Promise<U> | U |
|
): ThenPromise<R | U>; |
|
|
|
// Extensions specific to then/promise |
|
|
|
/** |
|
* Attaches callbacks for the resolution and/or rejection of the ThenPromise, without returning a new promise. |
|
* @param onfulfilled The callback to execute when the ThenPromise is resolved. |
|
* @param onrejected The callback to execute when the ThenPromise is rejected. |
|
*/ |
|
done(onfulfilled?: (value: R) => any, onrejected?: (reason: any) => any): void; |
|
|
|
|
|
/** |
|
* Calls a node.js style callback. If none is provided, the promise is returned. |
|
*/ |
|
nodeify(callback: void | null): ThenPromise<R>; |
|
nodeify(callback: (err: Error, value: R) => void): void; |
|
|
|
static resolve<T>(object: Promise<T> | T): ThenPromise<T>; |
|
static reject<T>(error?: any): ThenPromise<T>; |
|
static all<T: Iterable<mixed>>(promises: T): ThenPromise<$TupleMap<T, typeof $await>>; |
|
static race<T, Elem: Promise<T> | T>(promises: Iterable<Elem>): ThenPromise<T>; |
|
|
|
// Extensions specific to then/promise |
|
|
|
static denodeify(fn: Function): (...args: any[]) => ThenPromise<any>; |
|
static nodeify(fn: Function): Function; |
|
} |
|
module.exports = ThenPromise;
|
|
|