функция JavaScript возвращает данные - PullRequest
3 голосов
/ 25 сентября 2010

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

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

console.log(data); дает мне нужные данные.

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

var returnedData = db ('content');

Спасибо!

1 Ответ

9 голосов
/ 25 сентября 2010

Операции 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
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...