SpecialPromise.js 7.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/frameWork/Promise/SpecialPromise.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, 'e08cfkvJfZA94s8Q8xyDkav', 'SpecialPromise');
  13. // script/frameWork/Promise/SpecialPromise.ts
  14. "use strict";
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. exports.IntervalCheckPromise = exports.NextFrameResolvePromise = exports.PromiseDefault = exports.PromiseTimeout = exports.PromiseSchedulerSeconds = exports.PromiseResolved = void 0;
  17. /**
  18. * Resolved 的 Promise
  19. */
  20. exports.PromiseResolved = Promise.resolve();
  21. /**
  22. * 在组件上挂载一个延迟的回调函数
  23. * @param seconds 延迟多少秒
  24. * @param comp 调度者
  25. * @param promise
  26. * @returns
  27. */
  28. var PromiseSchedulerSeconds = function (seconds, comp, promise) {
  29. if (promise === void 0) { promise = PromiseDefault; }
  30. return promise(function (resolve) {
  31. comp.scheduleOnce(resolve, seconds);
  32. });
  33. };
  34. exports.PromiseSchedulerSeconds = PromiseSchedulerSeconds;
  35. /**
  36. * TimeOutPromise
  37. * @param seconds 延迟多少秒
  38. * @param comp 调度者
  39. * @param promise
  40. * @returns
  41. */
  42. var PromiseTimeout = function (seconds, func, promise) {
  43. if (promise === void 0) { promise = PromiseDefault; }
  44. return promise(function (resolve) {
  45. setTimeout(function () {
  46. func && func(seconds);
  47. resolve();
  48. }, seconds * 1000);
  49. });
  50. };
  51. exports.PromiseTimeout = PromiseTimeout;
  52. /**
  53. * 默认的 Promise
  54. * @param executor
  55. * @returns
  56. */
  57. function PromiseDefault(executor) {
  58. return new Promise(executor);
  59. }
  60. exports.PromiseDefault = PromiseDefault;
  61. /**
  62. * 下一帧 resolve
  63. */
  64. function NextFrameResolvePromise(comp, curFrameFunc) {
  65. curFrameFunc();
  66. return new Promise(function (resolve) { return comp.scheduleOnce(resolve, 0); });
  67. }
  68. exports.NextFrameResolvePromise = NextFrameResolvePromise;
  69. /** 返回一个 interval 检测的 Promise */
  70. function IntervalCheckPromise(check, interval) {
  71. if (interval === void 0) { interval = 0.1; }
  72. return new Promise(function (rs) {
  73. var timer;
  74. timer = setInterval(function () {
  75. if (check()) {
  76. clearInterval(timer);
  77. timer = null;
  78. rs();
  79. }
  80. }, interval * 1000);
  81. });
  82. }
  83. exports.IntervalCheckPromise = IntervalCheckPromise;
  84. cc._RF.pop();
  85. }
  86. if (nodeEnv) {
  87. __define(__module.exports, __require, __module);
  88. }
  89. else {
  90. __quick_compile_project__.registerModuleFunc(__filename, function () {
  91. __define(__module.exports, __require, __module);
  92. });
  93. }
  94. })();
  95. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvZnJhbWVXb3JrL1Byb21pc2UvU3BlY2lhbFByb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7O0dBRUc7QUFDVSxRQUFBLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFakQ7Ozs7OztHQU1HO0FBQ0ksSUFBTSx1QkFBdUIsR0FBRyxVQUFDLE9BQWUsRUFBRSxJQUFrQixFQUFFLE9BQXNDO0lBQXRDLHdCQUFBLEVBQUEsd0JBQXNDO0lBQy9HLE9BQU8sT0FBTyxDQUFDLFVBQUEsT0FBTztRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQTtBQUpZLFFBQUEsdUJBQXVCLDJCQUluQztBQUVEOzs7Ozs7R0FNRztBQUNJLElBQU0sY0FBYyxHQUFHLFVBQUMsT0FBZSxFQUFFLElBQXVCLEVBQUUsT0FBc0M7SUFBdEMsd0JBQUEsRUFBQSx3QkFBc0M7SUFDM0csT0FBTyxPQUFPLENBQUMsVUFBQSxPQUFPO1FBQ2xCLFVBQVUsQ0FBQztZQUNQLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFBO0FBUFksUUFBQSxjQUFjLGtCQU8xQjtBQUdEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQVUsUUFBNEI7SUFDaEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLElBQWtCLEVBQUUsWUFBd0I7SUFDaEYsWUFBWSxFQUFFLENBQUM7SUFDZixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUEsT0FBTyxJQUFJLE9BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQTdCLENBQTZCLENBQUMsQ0FBQTtBQUNoRSxDQUFDO0FBSEQsMERBR0M7QUFFRCxnQ0FBZ0M7QUFDaEMsU0FBZ0Isb0JBQW9CLENBQUMsS0FBb0IsRUFBRSxRQUFzQjtJQUF0Qix5QkFBQSxFQUFBLGNBQXNCO0lBQzdFLE9BQU8sSUFBSSxPQUFPLENBQU8sVUFBQSxFQUFFO1FBQ3ZCLElBQUksS0FBSyxDQUFDO1FBQ1YsS0FBSyxHQUFHLFdBQVcsQ0FBQztZQUNoQixJQUFJLEtBQUssRUFBRSxFQUFFO2dCQUNULGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDYixFQUFFLEVBQUUsQ0FBQzthQUNSO1FBQ0wsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFYRCxvREFXQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuZGVjbGFyZSBnbG9iYWwge1xuICAgIHR5cGUgUHJvbWlzZUV4ZWN1dG9yPFQ+ID0gKHJlc29sdmU6ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHR5cGUgSVByb21pc2VGdW5jPFQgPSBhbnk+ID0gKGV4ZWN1dG9yOiBQcm9taXNlRXhlY3V0b3I8VD4pID0+IFByb21pc2U8VD47XG59XG5cbi8qKlxuICogUmVzb2x2ZWQg55qEIFByb21pc2VcbiAqL1xuZXhwb3J0IGNvbnN0IFByb21pc2VSZXNvbHZlZCA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4vKipcbiAqIOWcqOe7hOS7tuS4iuaMgui9veS4gOS4quW7tui/n+eahOWbnuiwg+WHveaVsFxuICogQHBhcmFtIHNlY29uZHMg5bu26L+f5aSa5bCR56eSXG4gKiBAcGFyYW0gY29tcCDosIPluqbogIVcbiAqIEBwYXJhbSBwcm9taXNlIFxuICogQHJldHVybnMgXG4gKi9cbmV4cG9ydCBjb25zdCBQcm9taXNlU2NoZWR1bGVyU2Vjb25kcyA9IChzZWNvbmRzOiBudW1iZXIsIGNvbXA6IGNjLkNvbXBvbmVudCwgcHJvbWlzZTogSVByb21pc2VGdW5jID0gUHJvbWlzZURlZmF1bHQpID0+IHtcbiAgICByZXR1cm4gcHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgY29tcC5zY2hlZHVsZU9uY2UocmVzb2x2ZSwgc2Vjb25kcyk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogVGltZU91dFByb21pc2VcbiAqIEBwYXJhbSBzZWNvbmRzIOW7tui/n+WkmuWwkeenklxuICogQHBhcmFtIGNvbXAg6LCD5bqm6ICFXG4gKiBAcGFyYW0gcHJvbWlzZSBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgY29uc3QgUHJvbWlzZVRpbWVvdXQgPSAoc2Vjb25kczogbnVtYmVyLCBmdW5jOiAoc2Vjb25kcykgPT4gdm9pZCwgcHJvbWlzZTogSVByb21pc2VGdW5jID0gUHJvbWlzZURlZmF1bHQpID0+IHtcbiAgICByZXR1cm4gcHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBmdW5jICYmIGZ1bmMoc2Vjb25kcyk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sIHNlY29uZHMgKiAxMDAwKTtcbiAgICB9KTtcbn1cblxuXG4vKipcbiAqIOm7mOiupOeahCBQcm9taXNlXG4gKiBAcGFyYW0gZXhlY3V0b3IgXG4gKiBAcmV0dXJucyBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFByb21pc2VEZWZhdWx0PFQgPSBhbnk+KGV4ZWN1dG9yOiBQcm9taXNlRXhlY3V0b3I8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZXhlY3V0b3IpO1xufVxuXG4vKipcbiAqIOS4i+S4gOW4pyByZXNvbHZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBOZXh0RnJhbWVSZXNvbHZlUHJvbWlzZShjb21wOiBjYy5Db21wb25lbnQsIGN1ckZyYW1lRnVuYzogKCkgPT4gdm9pZCkge1xuICAgIGN1ckZyYW1lRnVuYygpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGNvbXAuc2NoZWR1bGVPbmNlKHJlc29sdmUsIDApKVxufVxuXG4vKiog6L+U5Zue5LiA5LiqIGludGVydmFsIOajgOa1i+eahCBQcm9taXNlICovXG5leHBvcnQgZnVuY3Rpb24gSW50ZXJ2YWxDaGVja1Byb21pc2UoY2hlY2s6ICgpID0+IGJvb2xlYW4sIGludGVydmFsOiBudW1iZXIgPSAwLjEpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocnMgPT4ge1xuICAgICAgICBsZXQgdGltZXI7XG4gICAgICAgIHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoZWNrKCkpIHtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgICAgICAgICAgICB0aW1lciA9IG51bGw7XG4gICAgICAgICAgICAgICAgcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgaW50ZXJ2YWwgKiAxMDAwKTtcbiAgICB9KTtcbn0iXX0=