mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.5 KiB
82 lines
1.5 KiB
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);
|
|
});
|
|
|
|
|
|
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);
|
|
|
|
process.addListener("exit", function () {
|
|
assertTrue(p1_done);
|
|
assertTrue(p2_done);
|
|
assertTrue(p3_done);
|
|
assertTrue(p4_done);
|
|
assertTrue(p5_done);
|
|
});
|
|
|