RxJS 系列 – 大雜燴

前言

RxJS 有太多方法了, 想看完整的可以去看 REFERENCE – API List, 這篇介紹一些常用的.

 

NEVER

NEVER.subscribe({
  complete: () => console.log('complete'), // never be called
  next: () => console.log('next'), // never be called
  error: () => console.log('error'), // never be called
});

就是一個永遠不會發布的流...有啥用呢?

比如, 有一個 slide down 的方法, 它支持開關控制

setupSlideDown({
  targetElement: cardWrapper,
  open$: fromEvent(openBtn, 'click'),
  close$: fromEvent(closeBtn, 'click'),
});

所以需要傳入 open$ 和 close$ 流. 但是有一個奇葩場景. 這個場景是沒有關閉的. 所以就沒有 closeBtn click event.

那這時 NEVER 就排上用場了. 

setupSlideDown({
  targetElement: cardWrapper,
  open$: fromEvent(openBtn, 'click'),
  close$: NEVER,
});

 

EMPTY

EMPTY.subscribe({
  complete: () => console.log('complete'), // call immediately
  next: () => console.log('next'), // never be called
  error: () => console.log('error'), // never be called
});

它是一個立馬結束的流. 和 NEVER 的是用意圖差不多, 都是用在那些特殊場景的.

它也類似我們經常會 用 empty array, empty string, empty function 作爲參數或返回. 這樣後續就容易統一處理.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章