Allow promises to be passed through a channel.
This commit is contained in:
parent
965d14d82c
commit
57247c6d10
2 changed files with 36 additions and 2 deletions
|
@ -453,3 +453,25 @@ describe(`Channel object`, function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
it(`allows promises to be sent through a channel`, function() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
process.once(`unhandledRejection`, reject);
|
||||
|
||||
const channel = Channel.of(
|
||||
Promise.resolve(`resolved`),
|
||||
new Promise((resolve, reject) => {
|
||||
setImmediate(reject, new Error(`rejected`));
|
||||
})
|
||||
);
|
||||
|
||||
assert.equal(await channel.shift(), `resolved`);
|
||||
|
||||
try {
|
||||
await channel.shift();
|
||||
} catch (exception) {
|
||||
assert.equal(exception.message, `rejected`);
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue