JSFiddle - React, Tailwind, and code Playground

HTML

<div>
<button id="mybtn" type="button">Find</button>
</div>

JavaScript

var btnElement = $('#mybtn');
var buttonIsBusy = false;

function doHeavyJob () {
    console.log('START --' + Date());
    for (var i = 0; i < 70000; i++) {
        var el = $('#mybtn');
        var w = el.width();
        w += 10;
    }
    var timeoutId = setTimeout (unblockTheButton, 0);
    console.log('STOP --' + Date());
}

function unblockTheButton () {
    console.log('unblockTheButton');
    btnElement.attr('disabled', false);
    buttonIsBusy = false;
}

function doClick() {
    console.log('click', buttonIsBusy);
    if (buttonIsBusy) {
        return;
    }
    
    btnElement.attr('disabled', true);
    buttonIsBusy = true;
    
    var timeoutId = setTimeout (doHeavyJob, 0);
}


btnElement.click(doClick);