UNPKG

loop-grid

Version:

An observable collection of looped event sequences shaped to a grid.

33 lines (26 loc) 652 B
var Observ = require('observ') var setImmediate = require('setimmediate2').setImmediate module.exports = computed function computed (observables, lambda) { var values = observables.map(function (o) { return o() }) var result = Observ(lambda.apply(null, values)) var pending = false observables.forEach(function (o, index) { o(function (newValue) { values[index] = newValue if (!pending) { pending = true setImmediate(result.refresh) } }) }) result.refresh = function () { if (pending) { pending = false result.set(lambda.apply(null, values)) } } return result }