|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
- export interface ShareReplayConfig {
- bufferSize?: number;
- windowTime?: number;
- refCount: boolean;
- scheduler?: SchedulerLike;
- }
- /**
- * Share source and replay specified number of emissions on subscription.
- *
- * This operator is a specialization of `replay` that connects to a source observable
- * and multicasts through a `ReplaySubject` constructed with the specified arguments.
- * A successfully completed source will stay cached in the `shareReplayed observable` forever,
- * but an errored source can be retried.
- *
- * ## Why use shareReplay?
- * You generally want to use `shareReplay` when you have side-effects or taxing computations
- * that you do not wish to be executed amongst multiple subscribers.
- * It may also be valuable in situations where you know you will have late subscribers to
- * a stream that need access to previously emitted values.
- * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.
- *
- * ![](shareReplay.png)
- *
- * ## Example
- * ```ts
- * import { interval } from 'rxjs';
- * import { shareReplay, take } from 'rxjs/operators';
- *
- * const obs$ = interval(1000);
- * const shared$ = obs$.pipe(
- * take(4),
- * shareReplay(3)
- * );
- * shared$.subscribe(x => console.log('source A: ', x));
- * shared$.subscribe(y => console.log('source B: ', y));
- *
- * ```
- *
- * @see {@link publish}
- * @see {@link share}
- * @see {@link publishReplay}
- *
- * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.
- * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.
- * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function
- * will be invoked on.
- * @return {Observable} An observable sequence that contains the elements of a sequence produced
- * by multicasting the source sequence within a selector function.
- * @method shareReplay
- * @owner Observable
- */
- export declare function shareReplay<T>(config: ShareReplayConfig): MonoTypeOperatorFunction<T>;
- export declare function shareReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
|