let

signature: let(function): Observable

Let me have the whole observable.


let is no longer available, or necessary, with pipeable operators! (RxJS 5.5+)


Ultimate RxJS

Examples

Example 1: Reusing error handling logic with let

( jsBin | jsFiddle )

// custom error handling logic
const retryThreeTimes = obs =>
  obs.retry(3).catch(_ => Rx.Observable.of('ERROR!'));
const examplePromise = val =>
  new Promise(resolve => resolve(`Complete: ${val}`));

//faking request
const subscribe = Rx.Observable.of('some_url')
  .mergeMap(url => examplePromise(url))
  // could reuse error handling logic in multiple places with let
  .let(retryThreeTimes)
  //output: Complete: some_url
  .subscribe(result => console.log(result));

const customizableRetry = retryTimes => obs =>
  obs.retry(retryTimes).catch(_ => Rx.Observable.of('ERROR!'));

//faking request
const secondSubscribe = Rx.Observable.of('some_url')
  .mergeMap(url => examplePromise(url))
  // could reuse error handling logic in multiple places with let
  .let(customizableRetry(3))
  //output: Complete: some_url
  .subscribe(result => console.log(result));

Example 2: Applying map with let

( jsBin | jsFiddle )

Example 3: Applying multiple operators with let

( jsBin | jsFiddle )

Example 4: Applying operators through function

( jsBin | jsFiddle )

Additional Resources

  • let 📰 - Official docs


📁 Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/let.ts

Last updated