我想處理由用戶觸發的一些事件。我想用RxJS Observables來做到這一點。如何爲一些特定的非DOM事件創建Rx可觀察性
在我的情況,用戶可以在瀏覽器中的這樣
window.barfoo.register((bar, foo) => {
console.log('foo=' + foo + ' bar=' + bar)'
});
控制檯現在登記的功能,向登記附加到流I可以包裝這樣
register$ = Rx.Observable.create(observer => {
window.barfoo.register = (callback) => {
observer.next(callback);
};
});
註冊碼
我對此代碼有懷疑,所以我想知道這是否是解決此問題的正確方法?原因是,我必須在Observable.create
回調中創建函數。在我的情況下是一個問題。因爲window.barfoo.register
是在創建observable之前首先創建的(我無法更改)。
window.barfoo = {
register: (cb) => { /* store cb somewhere and trigger something */
};
register$ = Rx.Observable.create(......????.....);
注:雖然我不能改變事物的秩序,我可以改變的register
執行!
任何建議如何設置observable?
所以你想覆蓋'(callback)=> {...}''window.barfoo.register'函數? – martin
是的,我可以替換註冊函數,這意味着我的第一個代碼示例將工作。但那是最好的解決方案。我知道Observable是數百萬運營商,所以也許有更好的方法 –