bindCallbackInternals.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. "use strict";
  2. var __read = (this && this.__read) || function (o, n) {
  3. var m = typeof Symbol === "function" && o[Symbol.iterator];
  4. if (!m) return o;
  5. var i = m.call(o), r, ar = [], e;
  6. try {
  7. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
  8. }
  9. catch (error) { e = { error: error }; }
  10. finally {
  11. try {
  12. if (r && !r.done && (m = i["return"])) m.call(i);
  13. }
  14. finally { if (e) throw e.error; }
  15. }
  16. return ar;
  17. };
  18. var __spreadArray = (this && this.__spreadArray) || function (to, from) {
  19. for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
  20. to[j] = from[i];
  21. return to;
  22. };
  23. Object.defineProperty(exports, "__esModule", { value: true });
  24. exports.bindCallbackInternals = void 0;
  25. var isScheduler_1 = require("../util/isScheduler");
  26. var Observable_1 = require("../Observable");
  27. var subscribeOn_1 = require("../operators/subscribeOn");
  28. var mapOneOrManyArgs_1 = require("../util/mapOneOrManyArgs");
  29. var observeOn_1 = require("../operators/observeOn");
  30. var AsyncSubject_1 = require("../AsyncSubject");
  31. function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) {
  32. if (resultSelector) {
  33. if (isScheduler_1.isScheduler(resultSelector)) {
  34. scheduler = resultSelector;
  35. }
  36. else {
  37. return function () {
  38. var args = [];
  39. for (var _i = 0; _i < arguments.length; _i++) {
  40. args[_i] = arguments[_i];
  41. }
  42. return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler)
  43. .apply(this, args)
  44. .pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));
  45. };
  46. }
  47. }
  48. if (scheduler) {
  49. return function () {
  50. var args = [];
  51. for (var _i = 0; _i < arguments.length; _i++) {
  52. args[_i] = arguments[_i];
  53. }
  54. return bindCallbackInternals(isNodeStyle, callbackFunc)
  55. .apply(this, args)
  56. .pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler));
  57. };
  58. }
  59. return function () {
  60. var _this = this;
  61. var args = [];
  62. for (var _i = 0; _i < arguments.length; _i++) {
  63. args[_i] = arguments[_i];
  64. }
  65. var subject = new AsyncSubject_1.AsyncSubject();
  66. var uninitialized = true;
  67. return new Observable_1.Observable(function (subscriber) {
  68. var subs = subject.subscribe(subscriber);
  69. if (uninitialized) {
  70. uninitialized = false;
  71. var isAsync_1 = false;
  72. var isComplete_1 = false;
  73. callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [
  74. function () {
  75. var results = [];
  76. for (var _i = 0; _i < arguments.length; _i++) {
  77. results[_i] = arguments[_i];
  78. }
  79. if (isNodeStyle) {
  80. var err = results.shift();
  81. if (err != null) {
  82. subject.error(err);
  83. return;
  84. }
  85. }
  86. subject.next(1 < results.length ? results : results[0]);
  87. isComplete_1 = true;
  88. if (isAsync_1) {
  89. subject.complete();
  90. }
  91. },
  92. ]));
  93. if (isComplete_1) {
  94. subject.complete();
  95. }
  96. isAsync_1 = true;
  97. }
  98. return subs;
  99. });
  100. };
  101. }
  102. exports.bindCallbackInternals = bindCallbackInternals;
  103. //# sourceMappingURL=bindCallbackInternals.js.map