mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
18d0511777
promise.wait() now returns the arguments of the "success" event. If there was only a single argument, then it is returned. If there was more than one, they are returned as an array. If there was an error, it is thrown. See documentation.
85 lines
1.5 KiB
JavaScript
85 lines
1.5 KiB
JavaScript
include("mjsunit.js");
|
|
|
|
var p1_done = false;
|
|
var p1 = new node.Promise();
|
|
p1.addCallback(function () {
|
|
assertEquals(1, arguments.length);
|
|
assertEquals("single arg", arguments[0]);
|
|
p1_done = true;
|
|
});
|
|
|
|
var p2_done = false;
|
|
var p2 = new node.Promise();
|
|
p2.addCallback(function () {
|
|
p2_done = true;
|
|
setTimeout(function () {
|
|
p1.emitSuccess(["single arg"]);
|
|
}, 100);
|
|
});
|
|
|
|
var p3_done = false;
|
|
var p3 = new node.Promise();
|
|
p3.addCallback(function () {
|
|
p3_done = true;
|
|
});
|
|
|
|
|
|
|
|
var p4_done = false;
|
|
var p4 = new node.Promise();
|
|
p4.addCallback(function () {
|
|
assertEquals(3, arguments.length);
|
|
assertEquals("a", arguments[0]);
|
|
assertEquals("b", arguments[1]);
|
|
assertEquals("c", arguments[2]);
|
|
p4_done = true;
|
|
});
|
|
|
|
var p5_done = false;
|
|
var p5 = new node.Promise();
|
|
p5.addCallback(function () {
|
|
p5_done = true;
|
|
setTimeout(function () {
|
|
p4.emitSuccess(["a","b","c"]);
|
|
}, 100);
|
|
});
|
|
|
|
function onLoad () {
|
|
|
|
p2.emitSuccess();
|
|
|
|
assertFalse(p1_done);
|
|
assertTrue(p2_done);
|
|
assertFalse(p3_done);
|
|
|
|
var ret1 = p1.wait()
|
|
assertEquals("single arg", ret1);
|
|
|
|
assertTrue(p1_done);
|
|
assertTrue(p2_done);
|
|
assertFalse(p3_done);
|
|
|
|
p3.emitSuccess();
|
|
|
|
assertFalse(p4_done);
|
|
assertFalse(p5_done);
|
|
|
|
p5.emitSuccess();
|
|
|
|
assertFalse(p4_done);
|
|
assertTrue(p5_done);
|
|
|
|
var ret4 = p4.wait();
|
|
assertArrayEquals(["a","b","c"], ret4);
|
|
|
|
assertTrue(p4_done);
|
|
}
|
|
|
|
function onExit() {
|
|
assertTrue(p1_done);
|
|
assertTrue(p2_done);
|
|
assertTrue(p3_done);
|
|
assertTrue(p4_done);
|
|
assertTrue(p5_done);
|
|
}
|