observableProto.selectMany = observableProto.flatMap = function (selector, resultSelector) {
      if (resultSelector) {
          return this.selectMany(function (x, i) {
            var selectorResult = selector(x, i),
              result = isPromise(selectorResult) ? observableFromPromise(selectorResult) : selectorResult;