JSFiddle - React, Tailwind, and code Playground

by fastfasterfastest

HTML

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

JavaScript

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

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