node/test/parallel/test-promise-hook-exceptions.js
Stephen Belanger e29bd4699d
v8: multi-tenant promise hook api
PR-URL: https://github.com/nodejs/node/pull/39283
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2022-01-29 17:03:06 -05:00

31 lines
667 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const { promiseHooks } = require('v8');
const expected = [];
function testHook(name) {
const hook = promiseHooks[name];
const error = new Error(`${name} error`);
const stop = hook(common.mustCall(() => {
stop();
throw error;
}));
expected.push(error);
}
process.on('uncaughtException', common.mustCall((received) => {
assert.strictEqual(received, expected.shift());
}, 4));
testHook('onInit');
testHook('onSettled');
testHook('onBefore');
testHook('onAfter');
const stop = promiseHooks.onInit(common.mustCall(() => {}, 2));
Promise.resolve().then(stop);