Skip to main content
Glama
README.md1.87 kB
# symbol-observable [![Build Status](https://travis-ci.org/benlesh/symbol-observable.svg?branch=master)](https://travis-ci.org/benlesh/symbol-observable) > [`Symbol.observable`](https://github.com/zenparsing/es-observable) [ponyfill](https://ponyfill.com) ## Install ``` $ npm install --save symbol-observable ``` ## Basic Usage ```js const symbolObservable = require('symbol-observable').default; console.log(symbolObservable); //=> Symbol(observable) ``` ```ts 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: 1. It's best if you just use one of the above libraries. 2. If you're not, but sure you never `next`, `error` or `complete` on your observer after `error` or `complete` was called. 3. Likewise, make sure you don't `next`, `error` or `complete` after `unsubscribe` is called on the returned object. ```ts 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](https://github.com/sindresorhus/is-observable) - Check if a value is an Observable - [observable-to-promise](https://github.com/sindresorhus/observable-to-promise) - Convert an Observable to a Promise ## License MIT © [Sindre Sorhus](https://sindresorhus.com) and [Ben Lesh](https://github.com/benlesh)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MyronKoch-dev/osmosis-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server