sleep.js 626 B

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. var delay = require("../../delay");
  3. module.exports = function (t, a) {
  4. if (typeof Promise !== "function") return null;
  5. return {
  6. Tick: function (d) {
  7. var isInvoked = false;
  8. t().then(function (result) {
  9. isInvoked = true;
  10. delay(function () {
  11. a(result, undefined);
  12. d();
  13. })();
  14. }, delay(d));
  15. a(isInvoked, false);
  16. },
  17. Timeout: function (d) {
  18. var isInvoked = false;
  19. t(100).then(
  20. delay(function (result) {
  21. isInvoked = true;
  22. a(result, undefined);
  23. d();
  24. }),
  25. delay(d)
  26. );
  27. setTimeout(function () {
  28. a(isInvoked, false);
  29. }, 50);
  30. }
  31. };
  32. };