我正在使用我的前端开发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?
答案 0 :(得分:0)
如果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
}
});
}