Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura

shareReplay.d.ts 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
  2. export interface ShareReplayConfig {
  3. bufferSize?: number;
  4. windowTime?: number;
  5. refCount: boolean;
  6. scheduler?: SchedulerLike;
  7. }
  8. /**
  9. * Share source and replay specified number of emissions on subscription.
  10. *
  11. * This operator is a specialization of `replay` that connects to a source observable
  12. * and multicasts through a `ReplaySubject` constructed with the specified arguments.
  13. * A successfully completed source will stay cached in the `shareReplayed observable` forever,
  14. * but an errored source can be retried.
  15. *
  16. * ## Why use shareReplay?
  17. * You generally want to use `shareReplay` when you have side-effects or taxing computations
  18. * that you do not wish to be executed amongst multiple subscribers.
  19. * It may also be valuable in situations where you know you will have late subscribers to
  20. * a stream that need access to previously emitted values.
  21. * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.
  22. *
  23. * ![](shareReplay.png)
  24. *
  25. * ## Example
  26. * ```ts
  27. * import { interval } from 'rxjs';
  28. * import { shareReplay, take } from 'rxjs/operators';
  29. *
  30. * const obs$ = interval(1000);
  31. * const shared$ = obs$.pipe(
  32. * take(4),
  33. * shareReplay(3)
  34. * );
  35. * shared$.subscribe(x => console.log('source A: ', x));
  36. * shared$.subscribe(y => console.log('source B: ', y));
  37. *
  38. * ```
  39. *
  40. * @see {@link publish}
  41. * @see {@link share}
  42. * @see {@link publishReplay}
  43. *
  44. * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.
  45. * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.
  46. * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function
  47. * will be invoked on.
  48. * @return {Observable} An observable sequence that contains the elements of a sequence produced
  49. * by multicasting the source sequence within a selector function.
  50. * @method shareReplay
  51. * @owner Observable
  52. */
  53. export declare function shareReplay<T>(config: ShareReplayConfig): MonoTypeOperatorFunction<T>;
  54. export declare function shareReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;