JSFiddle - React, Tailwind, and code Playground

HTML

<button id="signal">Signal</button>

JavaScript

function createEvent(numOfSignals, callback) {
    var _event = {};
    
    _event.signal = function() {
        if(numOfSignals > 1) {
            numOfSignals--;
        }
        else {
            callback();
        }
    };
    
    return _event;
}

function alertUser() {
    alert("Finally called.");
}

var event = createEvent(5, alertUser);

$('#signal').click(function() {
    event.signal();
});