mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 12:56:46 +08:00
node: Add ability to promisify setTimeout and setImmediate (#19488)
* node: Add ability to promisify setTimeout and setImmediate * Support providing a value
This commit is contained in:
16
types/node/index.d.ts
vendored
16
types/node/index.d.ts
vendored
@@ -81,10 +81,18 @@ declare var __filename: string;
|
||||
declare var __dirname: string;
|
||||
|
||||
declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
|
||||
declare namespace setTimeout {
|
||||
export function __promisify__(ms: number): Promise<void>;
|
||||
export function __promisify__<T>(ms: number, value: T): Promise<T>;
|
||||
}
|
||||
declare function clearTimeout(timeoutId: NodeJS.Timer): void;
|
||||
declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
|
||||
declare function clearInterval(intervalId: NodeJS.Timer): void;
|
||||
declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
|
||||
declare namespace setImmediate {
|
||||
export function __promisify__(): Promise<void>;
|
||||
export function __promisify__<T>(value: T): Promise<T>;
|
||||
}
|
||||
declare function clearImmediate(immediateId: any): void;
|
||||
|
||||
// TODO: change to `type NodeRequireFunction = (id: string) => any;` in next mayor version.
|
||||
@@ -5666,10 +5674,18 @@ declare module "v8" {
|
||||
|
||||
declare module "timers" {
|
||||
export function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
|
||||
export namespace setTimeout {
|
||||
export function __promisify__(ms: number): Promise<void>;
|
||||
export function __promisify__<T>(ms: number, value: T): Promise<T>;
|
||||
}
|
||||
export function clearTimeout(timeoutId: NodeJS.Timer): void;
|
||||
export function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
|
||||
export function clearInterval(intervalId: NodeJS.Timer): void;
|
||||
export function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;
|
||||
export namespace setImmediate {
|
||||
export function __promisify__(): Promise<void>;
|
||||
export function __promisify__<T>(value: T): Promise<T>;
|
||||
}
|
||||
export function clearImmediate(immediateId: any): void;
|
||||
}
|
||||
|
||||
|
||||
@@ -2177,6 +2177,15 @@ namespace timers_tests {
|
||||
timeout.ref();
|
||||
timers.clearTimeout(timeout);
|
||||
}
|
||||
async function testPromisify() {
|
||||
const setTimeout = util.promisify(timers.setTimeout);
|
||||
let v: void = await setTimeout(100); // tslint:disable-line no-void-expression void-return
|
||||
let s: string = await setTimeout(100, "");
|
||||
|
||||
const setImmediate = util.promisify(timers.setImmediate);
|
||||
v = await setImmediate(); // tslint:disable-line no-void-expression
|
||||
s = await setImmediate("");
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user