JSFiddle - React, Tailwind, and code Playground

JavaScript

var asyncCounter = 0;
function doAsyncEvent(settings,fn) {
    if (!fn) return;
    fn(settings).always(function(){
        asyncCounter++;
        console.log(asyncCounter);
    })
}

            
var settings = [
    {
        url: "google.com"
    },
    {
        url: "foobar.com"
    }
];

// an object
doAsyncEvent({url:"foobar.php"}, $.ajax);

// an array of objects
doAsyncEvent(settings,function(){
    var arr = [];
    for (var i = 0; i < settings.length; i++) {
        arr.push( $.ajax(settings[i]) );
    }
    return $.when.apply($,arr);
});