knockout.wrap

Wrap a function and notify any subscribers when any observables inside have changed.

Usage no npm install needed!

<script type="module">
  import knockoutWrap from 'https://cdn.skypack.dev/knockout.wrap';
</script>

README

knockout.wrap

Wrap a function and notify any subscribers when any observables inside have changed.

(Basically a ko.computed that doesn't actually calculate on change)

Example

var a = ko.observable(2),
    b = ko.observable(2);
    
function expensiveOperation() {
  console.log(a() + b());
}

var wrapped = ko.wrap(expensiveOperation);
wrapped.subscribe(function() {
  console.log('time to update');
});

// Call first time to identify dependencies
wrapped() // -> 4

// Some inside dependency updates, notify subscribers
a(3);     // -> time to update

// Don't call expensive operation unless explicitly called
wrapped() // -> 5

About

  • Author: Tim Hall
  • License: MIT
  • Dependencies: knockout