[英]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.