knockout issue #2492 (.extend({ rateLimit: x }))

by fastfasterfastest

HTML

<script src="https://knockoutjs.com/downloads/knockout-3.5.0.js"></script>

JavaScript

let count = 0;
let start = Date.now();
let isError = () => false;
let isSuccess = () => true;
let isLoading = ko.observable(false);
let isLoadingOrError = ko.computed(() => {
   console.log((Date.now() - start) + 'ms - isLoadingOrError');
   return isLoading() || isError();
   }).extend({ rateLimit: 50});
let isLoadingOrSuccess = ko.computed(() => {
   console.log((Date.now() - start) + 'ms - isLoadingOrSuccess');
   return isLoading() || isSuccess();
   });

let intervalId = setInterval(() => {
   if(count > 100){
     clearInterval(intervalId);
  }
  ++count;
  isLoading(!isLoading());
}, 2);