UNPKG

@reactivex/rxjs

Version:

Reactive Extensions for modern JavaScript

410 lines (409 loc) 14.5 kB
--- children: - label: 'I have one existing Observable, and' children: - label: I want to change each emitted value children: - label: to be a constant value children: - label: mapTo - label: to be a value calculated through a formula children: - label: map - label: I want to pick a property off each emitted value children: - label: pluck - label: I want to spy the values being emitted without affecting them children: - label: do - label: I want to allow some values to pass children: - label: based on custom logic children: - label: filter - label: if they are at the start of the Observable children: - label: and only the first value children: - label: first - label: based on a given amount children: - label: take - label: based on custom logic children: - label: takeWhile - label: if they are exactly the n-th emission children: - label: elementAt - label: if they are at the end of the Observable children: - label: and only the last value children: - label: last - label: based on a given amount children: - label: takeLast - label: until another Observable emits a value or completes children: - label: takeUntil - label: I want to ignore values children: - label: altogether children: - label: ignoreElements - label: from the start of the Observable children: - label: based on a given amount children: - label: skip - label: based on custom logic children: - label: skipWhile - label: until another Observable emits a value children: - label: skipUntil - label: that match some previous value children: - label: according to value equality children: - label: emitted just before the current value children: - label: distinctUntilChanged - label: emitted some time in the past children: - label: distinct - label: according to a key or object property children: - label: emitted just before the current value children: - label: distinctUntilKeyChanged - label: that occur too frequently children: - label: by emitting the first value in each time window children: - label: "where time windows are determined by another Observable's emissions" children: - label: throttle - label: where time windows are determined by a time duration children: - label: throttleTime - label: by emitting the last value in each time window children: - label: "where time windows are determined by another Observable's emissions" children: - label: audit - label: where time windows are determined by a time duration children: - label: auditTime - label: by emitting the last value as soon as enough silence has occured children: - label: where the silence duration threshold is determined by another Observable" children: - label: debounce - label: where the silence duration threshold is determined by a time duration children: - label: debounceTime - label: I want to compute a formula using all values emitted children: - label: and only output the final computed value children: - label: reduce - label: and output the computed values when the source emits a value children: - label: scan - label: and output the computed values as a nested Observable when the source emits a value children: - label: mergeScan - label: I want to wrap its messages with metadata children: - label: that describes each notification (next, error, or complete) children: - label: materialize - label: that includes the time past since the last emitted value children: - label: timeInterval - label: after a period of inactivity children: - label: I want to throw an error children: - label: timeout - label: I want to switch to another Observable children: - label: timeoutWith - label: I want to ensure there is only one value children: - label: single - label: I want to know how many values it emits children: - label: count - label: I want to prepend one value children: - label: startWith - label: I want to delay the emissions children: - label: based on a given amount of time children: - label: delay - label: based on the emissions of another Observable children: - label: delayWhen - label: I want to group the values children: - label: until the Observable completes children: - label: and convert to an array children: - label: toArray - label: and convert to a Promise children: - label: toPromise - label: consecutively in pairs, as arrays children: - label: pairwise - label: 'based on a criterion, and output two Observables: those that match the criterion and those that do not' children: - label: partition - label: in batches of a particular size children: - label: and emit the group as an array children: - label: bufferCount - label: and emit the group as a nested Observable children: - label: windowCount - label: based on time children: - label: and emit the group as an array children: - label: bufferTime - label: and emit the group as a nested Observable children: - label: windowTime - label: until another Observable emits children: - label: and emit the group as an array children: - label: buffer - label: and emit the group as a nested Observable children: - label: window - label: based on the emissions of an Observable created on-demand children: - label: and emit the group as an array children: - label: bufferWhen - label: and emit the group as a nested Observable children: - label: windowWhen - label: based on another Observable for opening a group, and an Observable for closing a group children: - label: and emit the group as an array children: - label: bufferToggle - label: and emit the group as a nested Observable children: - label: windowToggle - label: based on a key calculated from the emitted values children: - label: groupBy - label: I want to start a new Observable for each value children: - label: and emit the values from all nested Observables in parallel children: - label: where the nested Observable is the same for every value children: - label: mergeMapTo - label: where the nested Observable is calculated for each value children: - label: mergeMap - label: and emit the values from each nested Observable in order children: - label: where the nested Observable is the same for every value children: - label: concatMapTo - label: where the nested Observable is calculated for each value children: - label: concatMap - label: and cancel the previous nested Observable when a new value arrives children: - label: where the nested Observable is the same for every value children: - label: switchMapTo - label: where the nested Observable is calculated for each value children: - label: switchMap - label: and ignore incoming values while the current nested Observable has not yet completed children: - label: exhaustMap - label: and recursively start a new Observable for each new value children: - label: expand - label: I want to perform custom operations without breaking the chained calls API children: - label: let - label: I want to share a subscription between multiple subscribers children: - label: using a conventional Subject children: - label: and start it as soon as the first subscriber arrives children: - label: share - label: and start it manually or imperatively children: - label: publish - label: using a BehaviorSubject children: - label: publishBehavior - label: using a ReplaySubject children: - label: publishReplay - label: using an AsyncSubject children: - label: publishLast - label: using a specific subject implementation children: - label: multicast - label: and make it behave like a cache children: - label: cache - label: when an error occurs children: - label: I want to start a new Observable children: - label: catch - label: I want to re-subscribe children: - label: immediately children: - label: retry - label: when another Observable emits children: - label: retryWhen - label: when it completes children: - label: I want to re-subscribe children: - label: immediately children: - label: repeat - label: when another Observable emits children: - label: repeatWhen - label: I want to start a new Observable children: - label: concat - label: when it completes, errors or unsubscribes, I want to execute a function children: - label: finally - label: I want to change the scheduler children: - label: that routes calls to subscribe children: - label: subscribeOn - label: that routes values to observers children: - label: observeOn - label: I want to combine this Observable with others, and children: - label: I want to receive values only from the Observable that emits a value first children: - label: race - label: I want to output the values from either of them children: - label: Observable.merge - label: I want to output a value computed from values of the source Observables children: - label: using the latest value of each source whenever any source emits children: - label: combineLatest - label: using the latest value of each source only when the primary Observable emits children: - label: withLatestFrom - label: using each source value only once children: - label: zip - label: 'I have some Observables to combine together as one Observable, and' children: - label: I want to receive values only from the Observable that emits a value first children: - label: Observable.race - label: I want to be notified when all of them have completed children: - label: Observable.forkJoin - label: I want to output the values from either of them children: - label: Observable.merge - label: I want to output a value computed from values of the source Observables children: - label: using the latest value of each source whenever any source emits children: - label: Observable.combineLatest - label: using each source value only once children: - label: Observable.zip - label: I want to subscribe to each in order children: - label: Observable.concat - label: 'I have no Observables yet, and' children: - label: I want to create a new Observable children: - label: using custom logic children: - label: Observable.create - label: using a state machine similar to a for loop children: - label: Observable.generate - label: that throws an error children: - label: Observable.throw - label: that just completes, without emitting values children: - label: Observable.empty - label: that never emits anything children: - label: Observable.never - label: from an existing source of events children: - label: coming from the DOM or Node.js or similar children: - label: Observable.fromEvent - label: that uses an API to add and remove event handlers children: - label: Observable.fromEventPattern - label: from an ES6 Promise children: - label: Observable.fromPromise - label: from a Promise or an event source or an array children: - label: Observable.from - label: that iterates children: - label: over the values in an array children: - label: Observable.fromArray - label: over values in a numeric range children: - label: Observable.range - label: over prefined values given as arguments children: - label: Observable.of - label: that emits values on a timer children: - label: regularly children: - label: Observable.interval - label: with an optional initial delay children: - label: Observable.timer - label: which is built on demand when subscribed children: - label: Observable.defer - label: I want to convert a callback to an Observable children: - label: supporting a conventional callback API children: - label: Observable.bindCallback - label: supporting Node.js callback style API children: - label: Observable.bindNodeCallback