Knockout diamond dependencies

by robatwilliams

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-debug.js"></script>

JavaScript

var a = ko.observable(false);

var b = ko.computed(function () {
    return 'b says that a is ' + a();
});

var c = ko.computed(function () {
    return 'c says that a is ' + a();
});

var d = ko.computed(function () {
    var result = [b(), c()];
    
    console.log('d result: %s', JSON.stringify(result));
    
    return result;
}).extend({ throttle: 1 });

// throttle zero doesn't work due to check "throttleEvaluationTimeout && throttleEvaluationTimeout >= 0" in evaluatePossiblyAsync. It's documented!

a(true);