JSFiddle - React, Tailwind, and code Playground

HTML

<div class="height"></div>

CSS

.height {
  display: block;
  width: 30px;
  height: 30px;
  background: #cecece;
  animation: height 1s infinite linear;
}

@keyframes height {
  from {
    height: 30px
  }
  to {
    height: 0
  }
}

Babel + JSX

document.addEventListener("click", (event) => {
  console.log('start')
  let i = 5000000000

  const PART = 50000000
  
  devider();

  function devider() {
    if (i < PART) {
      setTimeout(reducer.bind(null, i))
      setTimeout(() => {console.log('end')})
    } else {
      i = i - PART;
      setTimeout(reducer.bind(null, PART))
      setTimeout(devider)
    }
  }

  function reducer(j) {
    while (j >= 0) {
      j--;
    }
  };
});