File: promise_allSettled.t.js

package info (click to toggle)
libnginx-mod-js 0.8.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,808 kB
  • sloc: ansic: 114,096; perl: 8,447; javascript: 2,520; exp: 487; sh: 322; xml: 312; python: 181; makefile: 18
file content (26 lines) | stat: -rw-r--r-- 1,025 bytes parent folder | download | duplicates (2)
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
/*---
includes: []
flags: [async]
---*/

var p0 = Promise.resolve(2).then(v => v + 1);
var p1 = Promise.reject(21).catch(v => v * 2);
var p2 = Promise.resolve('nope').then(() => { throw 'foo' });
var p3 = Promise.reject('yes').then(() => { throw 'nope'; });
var p4 = Promise.resolve('here').finally(() => 'nope');
var p5 = Promise.reject('here too').finally(() => 'nope');
var p6 = Promise.resolve('nope').finally(() => { throw 'finally'; });
var p7 = Promise.reject('nope').finally(() => { throw 'finally after rejected'; });
var p8 = Promise.reject(1).then(() => 'nope', () => 0);

function dump(v) {
    var fulfilled = v.filter(v=>v.status == 'fulfilled').map(v=>v.value).sort();
    var rejected = v.filter(v=>v.status == 'rejected').map(v=>v.reason).sort();
    return `F:${fulfilled}|R:${rejected}`
}

Promise.allSettled([p0, p1, p2, p3, p4, p5, p6, p7, p8]).then(
    v => assert.sameValue(dump(v), "F:0,3,42,here|R:finally,finally after rejected,foo,here too,yes"),
    v => $DONOTEVALUATE(),
)
.then($DONE, $DONE);