observ

WebJar for observ

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

observ
Last Version

Last Version

0.2.0
Release Date

Release Date

Type

Type

jar
Description

Description

observ
WebJar for observ
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/Raynos/observ

Download observ

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/observ/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>observ</artifactId>
    <version>0.2.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/observ/
implementation 'org.webjars.npm:observ:0.2.0'
// https://jarcasting.com/artifacts/org.webjars.npm/observ/
implementation ("org.webjars.npm:observ:0.2.0")
'org.webjars.npm:observ:jar:0.2.0'
<dependency org="org.webjars.npm" name="observ" rev="0.2.0">
  <artifact name="observ" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='observ', version='0.2.0')
)
libraryDependencies += "org.webjars.npm" % "observ" % "0.2.0"
[org.webjars.npm/observ "0.2.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

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

Versions

Version
0.2.0