[英]Creating manually observable
I am using for my frontend development OpenUI5 and it does not support rxjs. 我正在使用前端开发OpenUI5 ,它不支持rxjs。
For example, I want to listen the press Button from OpenUI5 event and could not do like 例如,我想听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');
});
Because the Button control does not implement event listener. 因为Button控件没有实现事件侦听器。
So I have to create Observable on my own, how to create a hot Observable? 所以我必须自己创建Observable,如何创建热的Observable?
If fromEvent
does not work for you, or for instance you want to wire multiple events to the same stream you can do something like this: 如果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.