JSFiddle - React, Tailwind, and code Playground

JavaScript

function CheckPath() {
    var defer = $.Deferred();
    var result = []; // zamiast new Array()
    var folders = [];
    console.log('CheckPath in');

    // Symlujemy $.ajax
    setTimeout(function () {
        result.push(1);
        result.push(3);
        folders.push('folder1');
        folders.push('folder2');
        defer.resolve(result, folders);
        //defer.reject();
        // Robimy zapytanie do serwera i robimy defer.resolve lub defer.reject w zależności od wyniku
        /* BTW $.ajax zwraca promise, więc nie trzeba robić new Promise($.ajax... :)
        $.ajax( "example.php" )
        .done(function() {
            alert( "success" );
        })
        .fail(function() {
            alert( "error" );
        })
        .always(function() {
            alert( "complete" );
        });
        */
    }, 3000);

    return defer;
};

console.log('CheckPath before'); // Tutaj warto wrzucić jakiś kręciołek
CheckPath()
    .done(function (result, folders) {
    console.log('CheckPath after (async)', result, folders); // Tutaj go wyłączamy
})
    .fail(function () {
    console.log('CheckPath after reject (async)'); // Tutaj go wyłączamy + obsługa błędu
});
console.log('CheckPath after');