| import { Observable } from '../Observable'; |
| import { SchedulerLike } from '../types'; |
| import { from } from './from'; |
| |
| /** |
| * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. |
| */ |
| export function pairs<T>(arr: readonly T[], scheduler?: SchedulerLike): Observable<[string, T]>; |
| /** |
| * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. |
| */ |
| export function pairs<O extends Record<string, unknown>>(obj: O, scheduler?: SchedulerLike): Observable<[keyof O, O[keyof O]]>; |
| /** |
| * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. |
| */ |
| export function pairs<T>(iterable: Iterable<T>, scheduler?: SchedulerLike): Observable<[string, T]>; |
| /** |
| * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. |
| */ |
| export function pairs( |
| n: number | bigint | boolean | ((...args: any[]) => any) | symbol, |
| scheduler?: SchedulerLike |
| ): Observable<[never, never]>; |
| |
| /** |
| * Convert an object into an Observable of `[key, value]` pairs. |
| * |
| * <span class="informal">Turn entries of an object into a stream.</span> |
| * |
| *  |
| * |
| * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each |
| * emitted array has exactly two elements - the first is a key from the object |
| * and the second is a value corresponding to that key. Keys are extracted from |
| * an object via `Object.keys` function, which means that they will be only |
| * enumerable keys that are present on an object directly - not ones inherited |
| * via prototype chain. |
| * |
| * By default, these arrays are emitted synchronously. To change that you can |
| * pass a {@link SchedulerLike} as a second argument to `pairs`. |
| * |
| * ## Example |
| * |
| * Converts an object to an Observable |
| * |
| * ```ts |
| * import { pairs } from 'rxjs'; |
| * |
| * const obj = { |
| * foo: 42, |
| * bar: 56, |
| * baz: 78 |
| * }; |
| * |
| * pairs(obj).subscribe({ |
| * next: value => console.log(value), |
| * complete: () => console.log('Complete!') |
| * }); |
| * |
| * // Logs: |
| * // ['foo', 42] |
| * // ['bar', 56] |
| * // ['baz', 78] |
| * // 'Complete!' |
| * ``` |
| * |
| * ### Object.entries required |
| * |
| * In IE, you will need to polyfill `Object.entries` in order to use this. |
| * [MDN has a polyfill here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) |
| * |
| * @param {Object} obj The object to inspect and turn into an |
| * Observable sequence. |
| * @param {Scheduler} [scheduler] An optional IScheduler to schedule |
| * when resulting Observable will emit values. |
| * @returns {(Observable<Array<string|T>>)} An observable sequence of |
| * [key, value] pairs from the object. |
| * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. |
| */ |
| export function pairs(obj: any, scheduler?: SchedulerLike) { |
| return from(Object.entries(obj), scheduler as any); |
| } |