File tree Expand file tree Collapse file tree 1 file changed +8
-11
lines changed
Expand file tree Collapse file tree 1 file changed +8
-11
lines changed Original file line number Diff line number Diff line change 4040 validateFunction,
4141} = require ( 'internal/validators' ) ;
4242
43+ const { AsyncResource } = require ( 'async_hooks' ) ;
44+
4345// *Must* match Environment::TickInfo::Fields in src/env.h.
4446const kHasTickScheduled = 0 ;
4547
@@ -132,16 +134,6 @@ function nextTick(callback){
132134queue . push ( tickObject ) ;
133135}
134136
135- let AsyncResource ;
136- const defaultMicrotaskResourceOpts = { requireManualDestroy : true } ;
137- function createMicrotaskResource ( ) {
138- // Lazy load the async_hooks module
139- if ( AsyncResource === undefined ) {
140- AsyncResource = require ( 'async_hooks' ) . AsyncResource ;
141- }
142- return new AsyncResource ( 'Microtask' , defaultMicrotaskResourceOpts ) ;
143- }
144-
145137function runMicrotask ( ) {
146138this . runInAsyncScope ( ( ) => {
147139const callback = this . callback ;
@@ -153,10 +145,15 @@ function runMicrotask(){
153145} ) ;
154146}
155147
148+ const defaultMicrotaskResourceOpts = { requireManualDestroy : true } ;
149+
156150function queueMicrotask ( callback ) {
157151validateFunction ( callback , 'callback' ) ;
158152
159- const asyncResource = createMicrotaskResource ( ) ;
153+ const asyncResource = new AsyncResource (
154+ 'Microtask' ,
155+ defaultMicrotaskResourceOpts
156+ ) ;
160157asyncResource . callback = callback ;
161158
162159enqueueMicrotask ( FunctionPrototypeBind ( runMicrotask , asyncResource ) ) ;
You can’t perform that action at this time.
0 commit comments