deno.land / std@0.166.0 / node / _tools / test / parallel / test-promise-unhandled-throw-handler.js

test-promise-unhandled-throw-handler.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
// Flags: --unhandled-rejections=throw'use strict';
const common = require('../common');const Countdown = require('../common/countdown');const assert = require('assert');
// Verify that the unhandledRejection handler prevents triggering// uncaught exceptions
const err1 = new Error('One');
const errors = [err1, null];
const ref = new Promise(() => { throw err1;});// Explicitly reject `null`.Promise.reject(null);
process.on('warning', common.mustNotCall('warning'));process.on('rejectionHandled', common.mustNotCall('rejectionHandled'));process.on('exit', assert.strictEqual.bind(null, 0));process.on('uncaughtException', common.mustNotCall('uncaughtException'));
const timer = setTimeout(() => console.log(ref), 1000);
const counter = new Countdown(2, () => { clearTimeout(timer);});
process.on('unhandledRejection', common.mustCall((err) => { counter.dec(); const knownError = errors.shift(); assert.deepStrictEqual(err, knownError);}, 2));
std

Version Info

Tagged at
a year ago