You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
557 B
JavaScript

"use strict";
const pDefer = require("p-defer");
module.exports = function createPauser() {
let isPaused = false;
let promise, resolve;
return {
await: function (passthroughValue) {
if (isPaused) {
return promise.then(() => {
return passthroughValue;
});
} else {
return passthroughValue;
}
},
pause: function () {
isPaused = true;
let defer = pDefer();
promise = defer.promise;
resolve = defer.resolve;
},
unpause: function () {
if (isPaused) {
isPaused = false;
resolve();
}
}
};
};