Move p-listen to stand-alone package
parent
20d060306a
commit
6dbc0597fe
@ -1,28 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
const consumable = require("@joepie91/consumable");
|
||||
|
||||
// TODO: Move to separate package, p-listener or something
|
||||
module.exports = function createPromiseListener() {
|
||||
let listeners = consumable([]);
|
||||
|
||||
function consumeListeners() {
|
||||
/* To ensure that a resolve/reject is atomic, and can never apply to the same listener queue twice. */
|
||||
return listeners.replace([]);
|
||||
}
|
||||
|
||||
return {
|
||||
listen: function () {
|
||||
return new Promise((resolve, _reject) => {
|
||||
listeners.peek().push(resolve);
|
||||
});
|
||||
},
|
||||
notify: function (promise) {
|
||||
consumeListeners().forEach((listener) => {
|
||||
// Docs: Pass in a rejected promise to produce a rejection on listeners
|
||||
listener(promise);
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue