Как вернуть значение ajax в функции?
Мне нужно проверить сессию на стороне сервера и вернуть значение. Делаю я вот так:
var check_session = function(soc)
{
$.ajax({
type: "POST",
data: "action=sesstest&soc="+soc,
url: "/action.php",
dataType: "json",
success: function(responce)
{
if(responce.result=="success")
{
sess = responce.messages;
return;
}
}
});
}
Var sess = check_session(soc);
В итоге значение я получаю “undefined”. Хотя через console.log в success ajax переменная sess выводит значение. Значит данные передаются и получаются как вернуть значение функции полученные через ajax и присвоить переменной? |
Цитата:
|
Слишком много косяков, чтоб что-то объяснять, юзай async и пиши как будто асинхронности нет.
;(async()=>{ // глобальная обёртка в начале всего скрипта
// async перед декларацией function
async function check_session(soc) {
// await перед вызовом async function
const responce = await $.ajax({
type: "POST",
data: "action=sesstest&soc="+soc,
url: "/action.php",
dataType: "json",
});
return responce.result === "success" && responce.messages;
}
// await перед вызовом async function
var sess = await check_session(soc)
})(); // конец глобальной обёртки
|
| Часовой пояс GMT +3, время: 22:13. |