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

of.ts 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import { SchedulerLike } from '../types';
  2. import { isScheduler } from '../util/isScheduler';
  3. import { fromArray } from './fromArray';
  4. import { Observable } from '../Observable';
  5. import { scheduleArray } from '../scheduled/scheduleArray';
  6. /* tslint:disable:max-line-length */
  7. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  8. export function of<T>(a: T, scheduler: SchedulerLike): Observable<T>;
  9. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  10. export function of<T, T2>(a: T, b: T2, scheduler: SchedulerLike): Observable<T | T2>;
  11. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  12. export function of<T, T2, T3>(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable<T | T2 | T3>;
  13. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  14. export function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
  15. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  16. export function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
  17. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  18. export function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
  19. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  20. export function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike):
  21. Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
  22. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  23. export function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike):
  24. Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
  25. /** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
  26. export function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike):
  27. Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
  28. export function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;
  29. // TODO(benlesh): Update the typings for this when we can switch to TS 3.x
  30. export function of<T>(a: T): Observable<T>;
  31. export function of<T, T2>(a: T, b: T2): Observable<T | T2>;
  32. export function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;
  33. export function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;
  34. export function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;
  35. export function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;
  36. export function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7):
  37. Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
  38. export function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8):
  39. Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
  40. export function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9):
  41. Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
  42. export function of<T>(...args: T[]): Observable<T>;
  43. /* tslint:enable:max-line-length */
  44. /**
  45. * Converts the arguments to an observable sequence.
  46. *
  47. * <span class="informal">Each argument becomes a `next` notification.</span>
  48. *
  49. * ![](of.png)
  50. *
  51. * Unlike {@link from}, it does not do any flattening and emits each argument in whole
  52. * as a separate `next` notification.
  53. *
  54. * ## Examples
  55. *
  56. * Emit the values `10, 20, 30`
  57. *
  58. * ```ts
  59. * import { of } from 'rxjs';
  60. *
  61. * of(10, 20, 30)
  62. * .subscribe(
  63. * next => console.log('next:', next),
  64. * err => console.log('error:', err),
  65. * () => console.log('the end'),
  66. * );
  67. * // result:
  68. * // 'next: 10'
  69. * // 'next: 20'
  70. * // 'next: 30'
  71. *
  72. * ```
  73. *
  74. * Emit the array `[1,2,3]`
  75. *
  76. * ```ts
  77. * import { of } from 'rxjs';
  78. *
  79. * of([1,2,3])
  80. * .subscribe(
  81. * next => console.log('next:', next),
  82. * err => console.log('error:', err),
  83. * () => console.log('the end'),
  84. * );
  85. * // result:
  86. * // 'next: [1,2,3]'
  87. * ```
  88. *
  89. * @see {@link from}
  90. * @see {@link range}
  91. *
  92. * @param {...T} values A comma separated list of arguments you want to be emitted
  93. * @return {Observable} An Observable that emits the arguments
  94. * described above and then completes.
  95. * @method of
  96. * @owner Observable
  97. */
  98. export function of<T>(...args: Array<T | SchedulerLike>): Observable<T> {
  99. let scheduler = args[args.length - 1] as SchedulerLike;
  100. if (isScheduler(scheduler)) {
  101. args.pop();
  102. return scheduleArray(args as T[], scheduler);
  103. } else {
  104. return fromArray(args as T[]);
  105. }
  106. }