[RxJS] Utility operator: do

We just saw map which is a transformation operator. There are a couple of categories of operators, such as filtering, combination, flattening, etc. One of these categories is the utility operators. The most important utility operator is do, useful for debugging.

 

var foo = Rx.Observable.interval(200).take(4);

/*
foo: ---0---1---2---3--...
      do(x => console.log('before ' + x))
     ---0---1---2---3--...
       map(x => x * 2)
     ---0---2---4---6--...
      do(x => console.log('after ' + x))
     ---0---2---4---6--...
*/

var bar = foo
  .do(x => console.log('before ' + x))
  .map(x => x * 2)
  .do(x => console.log('after ' + x));

bar.subscribe(
  function (x) { console.log('next ' + x); },
  function (err) { console.log('error ' + err); },
  function () { console.log('done'); },
);

 

posted @ 2016-05-24 20:45  Zhentiw  阅读(296)  评论(0编辑  收藏  举报