function createCbObservable(fn, ctx, selector, args) {
  var o = new AsyncSubject();

  args.push(createCbHandler(o, ctx, selector));
  fn.apply(ctx, args);

  return o.asObservable();
}
Filters the elements of an observable sequence based on a predicate by incorporating the element's index.
@param {Function} predicate A function to test each source element for a condition; the second parameter of the function represents the index of the source element.
@param {Any} [thisArg] Object to use as this when executing callback.
@returns {Observable} An observable sequence that contains elements from the input sequence that satisfy the condition.