Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Stars

74 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages