async-dependency-graph
Version:
A dependency graph that can traverse asynchronous nodes.
26 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Mutex = void 0;
var Mutex = /** @class */ (function () {
function Mutex(readyTest) {
this.readyTest = readyTest;
}
Mutex.prototype.await = function (callback) {
if (this.readyTest() === true) {
callback();
}
else {
this.waiting = this.waiting || [];
this.waiting.push(callback);
}
};
// called when we know what we are waiting for is ready
Mutex.prototype.ready = function (error) {
if (this.waiting)
this.waiting.forEach(function (callback) { return callback(error); });
delete this.waiting;
};
return Mutex;
}());
exports.Mutex = Mutex;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0ZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbXV0ZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7SUFLSSxlQUFtQixTQUF3QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU0scUJBQUssR0FBWixVQUFhLFFBQWdDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRUQsdURBQXVEO0lBQ2hELHFCQUFLLEdBQVosVUFBYSxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU87WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFDLFFBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNMLFlBQUM7QUFBRCxDQUFDLEFBeEJELElBd0JDO0FBeEJZLHNCQUFLIn0=