rxjs中的switch

广告位招租
扫码页面底部二维码联系

rxjs中可以做到在流之间转换,其中一个【本文首发于唐霜的博客】【版权所有,侵权必究】就是switch,它的意思和英文意思一样【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。,即从一个流切换到另外一个流。但是,单纯本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】从一个流切换到另外一个流是没有意义的,需【原创内容,转载请注明出处】【原创不易,请尊重版权】要将前一个流中的数据在切换时,要将它的数本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】据传给下一个流中去使用。rxjs中的sw【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。itchMap就是要做这样一件事,它接收【原创内容,转载请注明出处】【作者:唐霜】一个函数,这个函数的参数是上一个流遗留下【本文首发于唐霜的博客】【版权所有,侵权必究】来的数据,而它需要返回一个新的流,这个流转载请注明出处:www.tangshuang.net【作者:唐霜】中你可以使用上一个流遗留下来的数据。

【原创不易,请尊重版权】未经授权,禁止复制转载。
Rx.Observable.fromEvent(document, ‘mousedown’)
  .map(e => e.target)
  .switchMap(target => Rx.Observable.fromEvent(document, ‘mousemove’).map(e => {
  return { 
    startX: target.offsetX, 
    startY: target.offsetY,
    moveX: e.pageX,
    moveY: e.pageY,
  }
}))
.subscribe(pos => console.log(pos))

你可以看到,switchMap里面的函数【关注微信公众号:wwwtangshuangnet】未经授权,禁止复制转载。接收mousedown这个流给的targ本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】et,然后再返回一个新的关于mousem本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】ove的流,并且对这个新的流作map处理【本文受版权保护】【作者:唐霜】,过程中把前面的target也用上了。在转载请注明出处:www.tangshuang.net【作者:唐霜】switch发生的时候,mousedow【本文受版权保护】转载请注明出处:www.tangshuang.netn的事件监听就给丢掉了。后面就全是跟mo【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。usemove相关的监听。

【版权所有,侵权必究】转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。

总结一下,rxjs里面的switch就是本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。切换流的操作,切换的时候,前一个流会被丢【作者:唐霜】未经授权,禁止复制转载。掉。

【原创不易,请尊重版权】【原创不易,请尊重版权】