falcor-observable

1.3.0 • Public • Published

falcor-observable

An Observable implementation compatible with the Falcor DataSource API.

Unless you are implementing a Falcor DataSource you will likely be better served by the more fully featured RxJS.

Error handling policy

The error handling policy of the Observable is configurable to allow for easier core dump debugging.

By default, errors thrown by the subscriber function are caught as they are in the Promise API. Errors calling the observer's notification callbacks are swallowed by default.

To disable all try/catch usage in falcor-observable, call set the environment variable FALCOR_OBSERVABLE_NO_CATCH to a non empty value before this package is first imported.

Interoperability with other Observable implementations

This package is interoperable with RxJS and other Observable implementations following the symbol-observable protocol. Use Observable.from(other) to convert between implementations:

const Rx = require("rxjs/Rx");
const falcorObservable = require("falcor-observable").Observable;
 
// Take any compliant observable.
const obs = Rx.Observable.of(1, 2, 3);
 
// Convert to falcor-observable.
const fobs = falcorObservable.from(obs);
fobs.subscribe({
  onNext(value) {
    console.log("onNext", value);
  }
});
 
// Convert to RxJS.
const rxobs = Rx.Observable.from(fobs);
rxobs.subscribe({
  next(value) {
    console.log("next", value);
  }
});

Applying operators to an Observable

The pipe instance method can be used to apply operators to an Observable.

const { Observable,  map } = require("falcor-observable");
 
Observable.of(1,2,3)
  .pipe(
    map(x => x + 1),
    map(x => x + 1))
  .subscribe({
    onNext(value) {
      console.log("onNext", value);
    }
  });

Dependents (1)

Package Sidebar

Install

npm i falcor-observable

Weekly Downloads

64

Version

1.3.0

License

Apache-2.0

Unpacked Size

232 kB

Total Files

92

Last publish

Collaborators

  • lrowe