Функция 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
});