javascript how to make asynchronous function - Как ответить на асинхронный звонок?

async/await axios / javascript / jquery / ajax / asynchronous

У меня есть функция foo , которая выполняет асинхронный запрос. Как я могу вернуть ответ / результат от foo ?

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            // возвращаем ответ; // <- Я тоже пробовал
        }
    });

    return result; // Он всегда возвращает `undefined`
}

Пример использования node.js:

function foo() {
    var result;

    fs.readFile("path/to/file", function(err, data) {
        result = data;
        // возвращаем данные; // <- Я тоже пробовал
    });

    return result; // Он всегда возвращает `undefined`
}
function foo() {
    var result;

    fetch(url).then(function(response) {
        result = response;
        // возвращаем ответ; // <- Я тоже пробовал
    });

    return result; // Он всегда возвращает `undefined`
}

charlietfl



Answer #1

То есть:

function handleData( responseData ) {

    // Делайте с данными что хотите
    console.log(responseData);
}

$.ajax({
    url: "hi.php",
    ...
    success: function ( data, status, XHR ) {
        handleData(data);
    }
});