symbol-observable
Install
$ npm install --save symbol-observable
Basic Usage
const symbolObservable = require('symbol-observable').default;
console.log(symbolObservable);
//=> Symbol(observable)
import Symbol_observable from 'symbol-observable';
console.log(Symbol_observable);
//=> Symbol(observable)
Making an object "observable":
You can do something like what you see below to make any object "observable" by libraries like RxJS, XStream and Most.js.
Things to know:
- It's best if you just use one of the above libraries.
- If you're not, but sure you never
next
,error
orcomplete
on your observer aftererror
orcomplete
was called. - Likewise, make sure you don't
next
,error
orcomplete
afterunsubscribe
is called on the returned object.
import Symbol_observable from 'symbol-observable';
someObject[Symbol_observable] = () => {
return {
subscribe(observer) {
const handler = e => observer.next(e);
someObject.addEventListener('data', handler);
return {
unsubscribe() {
someObject.removeEventListener('data', handler);
}
}
},
[Symbol_observable]() { return this }
}
}
Often, it's not very hard, but it can get tricky in some cases.
Related
- is-observable - Check if a value is an Observable
- observable-to-promise - Convert an Observable to a Promise
License
MIT © Sindre Sorhus and Ben Lesh