js/listener.md

979 B

Listener

A generator for proxy objects that run callbacks when properties are changed.

Interface

listener(target={})
// Creates a new proxy for target
listener.listen(prop, callback)
// Adds a callback on a property change
listener.listen([prop, ...], callback)
// Adds a callback to several properties at once
listener.listen(prop)
// Removes all callbacks from a given property

Example

import Listener from 'listener.js'
const listener = Listener({})

// Listen for any changed property
listener.listen("*", (value, prop) => console.log(`${prop} changed to ${value}`))

// Listen only for changes to the foo property
listener.listen("foo", prop => console.log("it was foo, by the way"))

// Several listeners for one property are possible
// They will be executed in order of definition
listener.listen("foo", prop => do_something())

listener.foo = "New Value"
// Triggers 3 handlers

listener.bar = "New Value"
// Triggers only the * handler