Immediate.js 772 B

123456789101112131415161718192021222324252627282930
  1. var nextHandle = 1;
  2. var resolved;
  3. var activeHandles = {};
  4. function findAndClearHandle(handle) {
  5. if (handle in activeHandles) {
  6. delete activeHandles[handle];
  7. return true;
  8. }
  9. return false;
  10. }
  11. export var Immediate = {
  12. setImmediate: function (cb) {
  13. var handle = nextHandle++;
  14. activeHandles[handle] = true;
  15. if (!resolved) {
  16. resolved = Promise.resolve();
  17. }
  18. resolved.then(function () { return findAndClearHandle(handle) && cb(); });
  19. return handle;
  20. },
  21. clearImmediate: function (handle) {
  22. findAndClearHandle(handle);
  23. },
  24. };
  25. export var TestTools = {
  26. pending: function () {
  27. return Object.keys(activeHandles).length;
  28. }
  29. };
  30. //# sourceMappingURL=Immediate.js.map