File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed
ext/node/polyfills/timers Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,13 @@ export const setTimeout = promisify(timers.setTimeout),
6
6
setImmediate = promisify ( timers . setImmediate ) ,
7
7
setInterval = promisify ( timers . setInterval ) ;
8
8
9
+ export const scheduler = {
10
+ async wait ( delay : number , options ?: { signal ?: AbortSignal } ) : Promise < void > {
11
+ return await setTimeout ( delay , undefined , options ) ;
12
+ } ,
13
+ yield : setImmediate ,
14
+ } ;
15
+
9
16
export default {
10
17
setTimeout,
11
18
setImmediate,
Original file line number Diff line number Diff line change @@ -66,6 +66,29 @@ Deno.test("[node/timers/promises setTimeout]", () => {
66
66
return p ;
67
67
} ) ;
68
68
69
+ Deno . test ( "[node/timers/promises scheduler.wait]" , async ( ) => {
70
+ const { scheduler } = timersPromises ;
71
+ let resolved = false ;
72
+ timers . setTimeout ( ( ) => ( resolved = true ) , 20 ) ;
73
+ const p = scheduler . wait ( 20 ) ;
74
+
75
+ assert ( p instanceof Promise ) ;
76
+ await p ;
77
+ assert ( resolved ) ;
78
+ } ) ;
79
+
80
+ Deno . test ( "[node/timers/promises scheduler.yield]" , async ( ) => {
81
+ const { scheduler } = timersPromises ;
82
+ let resolved = false ;
83
+ timers . setImmediate ( ( ) => resolved = true ) ;
84
+
85
+ const p = scheduler . yield ( ) ;
86
+ assert ( p instanceof Promise ) ;
87
+ await p ;
88
+
89
+ assert ( resolved ) ;
90
+ } ) ;
91
+
69
92
// Regression test for https://github.com/denoland/deno/issues/17981
70
93
Deno . test ( "[node/timers refresh cancelled timer]" , ( ) => {
71
94
const { setTimeout, clearTimeout } = timers ;
You can’t perform that action at this time.
0 commit comments