/ReaktioJS

Reaktio.js is a small library which allows you to create a value that can be observed asynchronously.

Primary LanguageJavaScript

Reaktio.js is a small library which allows you to create a value that can be observed. If the value is changed, for whatever reason, all observers are notified asynchronously. Observer can be a function or another value which is updated.

Example code:

var a = createReactiveValue(2);
var b = createReactiveValue(1);
var c = createReactiveValue(null);

// We want c to depend on both a and b. If either a or b change, c should automatically recalculate it's value
makeReaction(c, [a, b], (c, [a, b]) => {
    return a.get() + b.get();
})

// If c is changed, for whatever reason, log it
watchReaction(c, (newC) => {
    console.log("Reaction completed: " + a.get() + " + " + b.get() + " = " + c.get());
});

// Test it by resetting a and b randomly

setInterval(() =>
{
    var newValue = Math.random();
    a.set(newValue); },
1000);

setInterval(() =>
{
    var newValue = Math.random();
    b.set(newValue); },
1300);