function selectMany(selector) {
      return this.select(function (x, i) {
        var result = selector(x, i);
        return isPromise(result) ? observableFromPromise(result) : result;
      }).mergeObservable();