Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

observ

build status NPM version Davis Dependency status

browser support

NPM

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 value
  • thing.set(...) sets the value
  • thing(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

MIT Licenced

About

A observable value representation

Resources

License

Packages

No packages published