%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const assert = require('assert'); const rejection = new Error('Swallowed reject'); const rejection2 = new TypeError('Weird'); const resolveMessage = 'First call'; const rejectPromise = new Promise((r) => setTimeout(r, 10, rejection2)); const swallowedResolve = 'Swallowed resolve'; const swallowedResolve2 = 'Foobar'; process.on('multipleResolves', common.mustCall(handler, 4)); const p1 = new Promise((resolve, reject) => { resolve(resolveMessage); resolve(swallowedResolve); reject(rejection); }); const p2 = new Promise((resolve, reject) => { reject(rejectPromise); resolve(swallowedResolve2); reject(rejection2); }).catch(common.mustCall((exception) => { assert.strictEqual(exception, rejectPromise); })); const expected = [ 'resolve', p1, swallowedResolve, 'reject', p1, rejection, 'resolve', p2, swallowedResolve2, 'reject', p2, rejection2, ]; let count = 0; function handler(type, promise, reason) { assert.strictEqual(type, expected.shift()); // In the first two cases the promise is identical because it's not delayed. // The other two cases are not identical, because the `promise` is caught in a // state when it has no knowledge about the `.catch()` handler that is // attached to it right afterwards. if (count++ < 2) { assert.strictEqual(promise, expected.shift()); } else { assert.notStrictEqual(promise, expected.shift()); } assert.strictEqual(reason, expected.shift()); }