簡體   English   中英

創建手動可觀察

[英]Creating manually observable

我正在使用前端開發OpenUI5 ,它不支持rxjs。

例如,我想聽OpenUI5事件中的按下按鈕,而不能這樣做

var source = Rx.Observable.fromEvent(input, 'press');

var subscription = source.subscribe(
  function (x) {
    console.log('Next: Clicked!');
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });

因為Button控件沒有實現事件偵聽器。

所以我必須自己創建Observable,如何創建熱的Observable?

如果fromEvent不適用於您,或者例如您要將多個事件連接到同一流,則可以執行以下操作:

function mouseAllTheThingsStream(){
  const target = document.getElementById('#content');
  return Rx.Observable.create(observer => {
    target.onmousemove(evt => observer.onNext(evt));
    target.onmousedown(evt => observer.onNext(evt));

    window.setTimeout(() => observer.onCompleted(), 30 * 1000);

    return () => {
      // cleanup; unsubscribe from events manually
    }
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM