rxjs / 7.5.5 / api / index / function / pairs.html /

pairs

function deprecated

Convert an object into an Observable of [key, value] pairs.

Deprecation Notes

Use from(Object.entries(obj)) instead. Will be removed in v8.

pairs(obj: any, scheduler?: SchedulerLike)

Parameters

obj any

The object to inspect and turn into an Observable sequence.

scheduler SchedulerLike

Optional. Default is undefined.

An optional IScheduler to schedule when resulting Observable will emit values.

Description

Turn entries of an object into a stream.

pairs marble diagram

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 SchedulerLike as a second argument to pairs.

Example

Converts an object to an Observable

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

Overloads

pairs(arr: any, T, __2, scheduler?: SchedulerLike): Observable<[string, T]>

Parameters

arr any
T
__2
scheduler SchedulerLike

Optional. Default is undefined.

Returns

Observable<[string, T]>

pairs(obj: O, scheduler?: SchedulerLike): Observable<[keyof O, O[keyof O]]>

Parameters

obj O
scheduler SchedulerLike

Optional. Default is undefined.

Returns

Observable<[keyof O, O[keyof O]]>

pairs(iterable: Iterable<T>, scheduler?: SchedulerLike): Observable<[string, T]>

Parameters

iterable Iterable<T>
scheduler SchedulerLike

Optional. Default is undefined.

Returns

Observable<[string, T]>

pairs(n: number | bigint | boolean | symbol | ((...args: any[]) => any), scheduler?: SchedulerLike): Observable<[never, never]>

Parameters

n number | bigint | boolean | symbol | ((...args: any[]) => any)
scheduler SchedulerLike

Optional. Default is undefined.

Returns

Observable<[never, never]>

© 2015–2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/index/function/pairs