Hi,
maybe related to: (#13367),
the init-hook (now?) reports a triggerId of 0 for type 'PROMISE' sometimes
code to reproduce:
constasyncHooks=require('async_hooks');letbeforeId;asyncHooks.createHook({init: (id,type,triggerId)=>{process._rawDebug(`init: id:${id} type:${type} triggerId:${triggerId}`);},before: (id)=>{process._rawDebug(`before: id:${id}`);beforeId=id;}}).enable();functiontracePromise(prefix){process._rawDebug(`promise : ${prefix}: currId:${asyncHooks.currentId()} lastId:${beforeId}`);}setImmediate(()=>{doTrace=true;returnnewPromise((resolve,reject)=>{tracePromise('P1: EXECUTOR FUNC');resolve();}).then(()=>{tracePromise('P1: THEN');returnnewPromise((resolve,reject)=>{tracePromise('P2: EXECUTOR FUNC');resolve();}).then(()=>{tracePromise('P2: THEN');returnnewPromise((resolve,reject)=>{tracePromise('P3: EXECUTOR FUNC');resolve();}).then(()=>{tracePromise('P3: THEN');});});});});output from above:
gms@sirius:~/work/HOT/node-async-context/test (master)$ node promise.js init: id:2 type:Immediate triggerId:1
before: id:2
init: id:3 type:PROMISE triggerId:2
promise : P1: EXECUTOR FUNC: currId:2 lastId:2
init: id:4 type:PROMISE triggerId:3
before: id:4
promise : P1: THEN: currId:0 lastId:4
init: id:5 type:PROMISE triggerId:0
promise : P2: EXECUTOR FUNC: currId:0 lastId:4
init: id:6 type:PROMISE triggerId:5
before: id:6
promise : P2: THEN: currId:0 lastId:6
init: id:7 type:PROMISE triggerId:0
promise : P3: EXECUTOR FUNC: currId:0 lastId:6
init: id:8 type:PROMISE triggerId:7
init: id:9 type:PROMISE triggerId:6
before: id:8
promise : P3: THEN: currId:0 lastId:8
init: id:10 type:PROMISE triggerId:8
before: id:10
before: id:9
Guenter
Hi,
maybe related to: (#13367),
the init-hook (now?) reports a triggerId of 0 for type 'PROMISE' sometimes
code to reproduce:
output from above:
Guenter