Awesome
observ
A observable value representation
Example
var Observable = require("observ")
var v = Observable("initial value")
var stopListening = v(function onchange(newValue) {
assert.equal(newValue, "new value")
})
v.set("new value")
var curr = v()
assert.equal(curr, "new value")
stopListening()
What about dominictarr/observable
?
Both observ
& observable
have the same interface of
thing()
gets the valuething.set(...)
sets the valuething(function (value) { ... })
listens to the value.
The way observ
and observable
differ is in listening.
observ
will ONLY call the listener if.set()
is invoked.observable
calls the listener IMMEDIATELY and calls it whenever.set()
is invoked
observ
can be used in a similar fashion to observable
by using
var watch = require("observ/watch")
. You can then just
watch(thing, function (value) { ... })
and it will call the
listener immediately
Both observ
& observable
have a computed method with the same
interface.
require("observable").compute
require("observ/computed")
Example computed
var Observable = require("observ")
var computed = require("observ/computed")
var one = Observable(1)
var two = Observable(2)
var together = computed([one, two], function (a, b) {
return a + b
})
assert.equal(together(), 3)
two.set(5)
assert.equal(together(), 7)
Docs
type Observable<A> :
(() => A) &
((Function<A>) => void) & {
set: (A) => void
}
observ : (A) => Observable<A>
observ/computed : (
sources: Array<Observ<T>>,
lambda: (...args: T) => S
) => Observ<S>
Installation
npm install observ
Contributors
- Raynos