mirror of
https://github.com/nodejs/node.git
synced 2025-05-08 20:26:36 +00:00

Rename the `parentId` property on the PromiseWrap object to a `isChainedPromise` property. The former wasn't quite useful as it was always defined to be the same value as the trigger id available in the init hook. Instead rename the property to be closer to the information it communicates: whether the promise is a chained promise or not. PR-URL: https://github.com/nodejs/node/pull/18633 Fixes: https://github.com/nodejs/node/issues/18470 Reviewed-By: Andreas Madsen <amwebdk@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
29 lines
937 B
JavaScript
29 lines
937 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const async_hooks = require('async_hooks');
|
|
|
|
const initCalls = [];
|
|
const resolveCalls = [];
|
|
|
|
async_hooks.createHook({
|
|
init: common.mustCall((id, type, triggerId, resource) => {
|
|
assert.strictEqual(type, 'PROMISE');
|
|
initCalls.push({ id, triggerId, resource });
|
|
}, 2),
|
|
promiseResolve: common.mustCall((id) => {
|
|
assert.strictEqual(initCalls[resolveCalls.length].id, id);
|
|
resolveCalls.push(id);
|
|
}, 2)
|
|
}).enable();
|
|
|
|
const a = Promise.resolve(42);
|
|
const b = a.then(common.mustCall());
|
|
|
|
assert.strictEqual(initCalls[0].triggerId, 1);
|
|
assert.strictEqual(initCalls[0].resource.isChainedPromise, false);
|
|
assert.strictEqual(initCalls[0].resource.promise, a);
|
|
assert.strictEqual(initCalls[1].triggerId, initCalls[0].id);
|
|
assert.strictEqual(initCalls[1].resource.isChainedPromise, true);
|
|
assert.strictEqual(initCalls[1].resource.promise, b);
|