mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
var passes = [];
|
|
|
|
var p = new Promise(function(res,rej) {
|
|
setTimeout(res, 10, "Hello");
|
|
}).then(function(r) {
|
|
if (r=="Hello") passes.push("SimpleResolve");
|
|
});
|
|
|
|
// Check that promises work even if the function is called immediately
|
|
var p = new Promise(function(res,rej) {
|
|
rej("Hello");
|
|
}).catch(function(r) {
|
|
if (r=="Hello") passes.push("SimpleReject");
|
|
}).then(function(r) {
|
|
passes.push("SimpleReject2");
|
|
});
|
|
|
|
var p = new Promise(function(res,rej) {
|
|
res("Hello");
|
|
}).then(function(r) {
|
|
if (r=="Hello") passes.push("InstantResolve");
|
|
}).catch(function(r) {
|
|
passes.push("FAIL1");
|
|
});
|
|
|
|
var p = new Promise(function(res,rej) {
|
|
setTimeout(res, 10, "Hello");
|
|
}).then(function(r) {
|
|
if (r=="Hello") passes.push("Resolve1");
|
|
}).then(function(r) {
|
|
if (r=="Hello") passes.push("Resolve2");
|
|
});
|
|
|
|
|
|
var p = Promise.resolve("Hello").then(function(r) {
|
|
if (r=="Hello") passes.push("PreResolved");
|
|
}).catch(function(r) {
|
|
passes.push("FAIL2");
|
|
});
|
|
|
|
var p = Promise.reject("Hello").catch(function(r) {
|
|
if (r=="Hello") passes.push("PreRejected");
|
|
}).then(function(r) {
|
|
passes.push("PreRejected2");
|
|
});
|
|
|
|
|
|
var p = Promise.all([new Promise(function(res,rej) {
|
|
setTimeout(res, 10, "A");
|
|
}), new Promise(function(res,rej) {
|
|
setTimeout(res, 10, "B");
|
|
})]).then(function(r) {
|
|
if (r=="A,B") passes.push("ResolveAll");
|
|
});
|
|
|
|
var p = Promise.all([new Promise(function(res,rej) {
|
|
setTimeout(res, 20, "A");
|
|
}), new Promise(function(res,rej) {
|
|
setTimeout(rej, 10, "Ok");
|
|
})]).then(function(r) {
|
|
passes.push("FAIL5");
|
|
}).catch(function(r) {
|
|
if (r=="Ok") passes.push("RejectAll");
|
|
});
|
|
|
|
setTimeout(function() {
|
|
result = passes == "SimpleReject,InstantResolve,PreResolved,PreRejected,SimpleReject2,PreRejected2,SimpleResolve,Resolve1,ResolveAll,RejectAll";
|
|
if (!result) console.log(""+passes);
|
|
},30);
|