Flexible and simple observables with multiple implementations.
Supports CJS and ESM import.
npm i observavir
Full docs: https://electrovir.github.io/observavir
All observables have a .value
property for accessing the current value and a .listen()
method for attaching callbacks to value updates.
Several different observable classes are exported from this package:
-
Observable
: Bare bones basic observable. Can be listened to and its value can be updated with.setValue()
. -
AsyncObservable
: If given a Promise, it will updatevalue
(and listeners) when the Promise is set and then resolved or rejected so you can track and evenawait
the Promises. Also includes alastResolvedValue
for anything that does't care about the Promise lifecycle. -
CallbackObservable
: A sub-class ofAsyncObservable
that accepts a callback for triggering updates ofvalue
. -
IntervalObservable
: A sub-class ofCallbackObservable
that will automatically update itself at a give internal rate.