Функция JavaScript возвращает данные

У меня есть такая функция, которая делает вызов ajax, чтобы получить некоторые данные из базы данных.

    function db (content) {
        $.post('/ajax/db.php', { 
           operation:operation,
           content:content
        }, function(data)
        {
            console.log(data);
            return data;
        });
    }

console.log(data); дает мне данные, которые я хочу.

Однако, как мне пройти data функционировать БД, чтобы я мог сделать что-то вроде:

var returnedData = db ('content');

Спасибо!

1 ответ

Решение

Операции AJAX являются асинхронными, поэтому возвращать их напрямую нельзя, если только вы не сделаете их синхронными (что блокирует браузер). Вместо этого вы должны передать данные следующей функции в обратном вызове, например так:

function db (content) {
    $.post('/ajax/db.php', { 
       operation:operation,
       content:content
    }, function(data)
    {   
        nextFunction(data);
    });
}

Или заставьте его выполнить обратный вызов, чтобы вы могли передать функцию, которая будет получать данные, когда она будет готова, вот так:

function db (content, callback) {
    $.post('/ajax/db.php', { 
       operation:operation,
       content:content
    }, callback);
}

Затем вызовите его, предоставив функцию обратного вызова, например:

db('content', function(data) { 
  //do something with data
});
Другие вопросы по тегам