.mergeMap(payload => Observable.create(sink => { onNext(payload, () => { sink.next(); // pass void to public observer's `next` sink.complete(); }); }),
_loadMore = ( pageSize: number, observerOrCallback: ?ObserverOrCallback, options: ?RefetchOptions, ): ?Disposable => { if (!this._canFetchPage('loadMore')) { return { dispose() {}, }; } const observer = toObserver(observerOrCallback); const connectionData = this._getConnectionData(); if (!connectionData) { Observable.create(sink => sink.complete()).subscribe(observer); return null; } const totalCount = connectionData.edgeCount + pageSize; if (options && options.force) { return this._refetchConnection(totalCount, observerOrCallback); } const {END_CURSOR, START_CURSOR} = ConnectionInterface.get(); const cursor = connectionData.cursor; warning( cursor, 'ReactRelayPaginationContainer: Cannot `loadMore` without valid `%s` (got `%s`)', direction === FORWARD ? END_CURSOR : START_CURSOR, cursor, ); const paginatingVariables = { count: pageSize, cursor: cursor, totalCount, }; this._hasPaginated = true; const fetch = this._fetchPage(paginatingVariables, observer, options); return {dispose: fetch.unsubscribe}; };