UNPKG

atombeak

Version:

Create asynchronous atomic functions!

39 lines (38 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultClock = { after: function (delay) { return new Promise(function (resolve) { setTimeout(function () { return resolve(null); }, delay); }); } }; function testClock(startTime) { var listeners = []; var currentTime = startTime; return { after: function (delay) { return new Promise(function (resolve) { if (delay <= 0) { } else { var listener = { callback: function () { return resolve(null); }, atTime: currentTime + delay }; listeners.push(listener); } }); }, setTime: function (time) { currentTime = time; listeners.forEach(function (listener) { if (listener.atTime <= currentTime) { listener.callback(); } }); listeners = listeners.filter(function (listener) { return listener.atTime > currentTime; }); } }; } exports.testClock = testClock;