code: function bindCallback(callbackFunc, resultSelector, scheduler) {
      if (resultSelector) {
          if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(resultSelector)) {
              scheduler = resultSelector;
          }
          else {
              return function () {
                  var args = [];
                  for (var _i = 0; _i < arguments.length; _i++) {
                      args[_i] = arguments[_i];
                  }
                  return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_3__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
              };
          }
      }
      return function () {
          var args = [];
          for (var _i = 0; _i < arguments.length; _i++) {
              args[_i] = arguments[_i];
          }
          var context = this;
          var subject;
          var params = {
              context: context,
              subject: subject,
              callbackFunc: callbackFunc,
              scheduler: scheduler,
          };
          return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
              if (!scheduler) {
                  if (!subject) {
                      subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"]();
                      var handler = function () {
                          var innerArgs = [];
                          for (var _i = 0; _i < arguments.length; _i++) {
                              innerArgs[_i] = arguments[_i];
                          }
                          subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
                          subject.complete();
                      };
                      try {
                          callbackFunc.apply(context, args.concat([handler]));
                      }
                      catch (err) {
                          subject.error(err);
                      }
                  }
                  return subject.subscribe(subscriber);
              }
              else {
                  var state = {
                      args: args, subscriber: subscriber, params: params,
                  };
                  return scheduler.schedule(dispatch, 0, state);
              }
          });
      };
  }
docs: PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isArray,_util_isScheduler PURE_IMPORTS_END