https://stackoverflow.com/questions/54834798/knockout-observable-not-triggering-when-using-throttle

by jlspake

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.0/knockout-min.js"></script>
A: <select data-bind="value: optionA">
  <option>Foo</option>
  <option>Bar</option>
</select>
<br/>

B: <textarea rows="2" data-bind="textInput: optionB"></textarea>
<br/>

C: <textarea rows="2" data-bind="textInput: optionC"></textarea>
<br/>

JavaScript

function viewModel(){
		var self = this;
    
    self.optionA = ko.observable();
    self.optionB = ko.observable();
    self.optionC = ko.observable();
    
    self.periodicallySave = function(){
        if (self.optionA() || self.optionB() || self.optionC()) {
            self.saveOptions();
        }
    }
    
    self.optionA.extend({ rateLimit: 1000 }).subscribe(self.periodicallySave);
    self.optionB.extend({ rateLimit: 1000 }).subscribe(self.periodicallySave);
    self.optionC.extend({ rateLimit: 1000 }).subscribe(self.periodicallySave);
    
    self.saveOptions = function(){
    		console.log("Saved");
    }
}

ko.applyBindings(new viewModel());