Я пытаюсь вернуть значение обратного вызова вне функции обратного вызова:
Я делаю функцию, основанную на теме: Как я могу вернуть ответ от асинхронного вызова?
(function (){
return getAjaxResult(function(result) { return result; });
//<-- Return Undefined (in console log return correct value)
})();
function getAjaxResult(callback){
$.ajax({
url: 'myurl',
type: 'GET',
success: function (result)
{
if (result === 'working'){
callback(result);
}else if (result === 'notworking'){
callback('notworking');
}
}
})
}
Вернуть "Не определено" (в журнале консоли вернуть правильное значение).
Я не знаю, является ли это лучшим вариантом для возврата значения AJAX в обратном вызове
Есть два способа сделать это, вы можете использовать async false, но не рекомендуется, и вы всегда можете использовать обещание:
сделать такую функцию:
function ajaxCallback(id){
return $.ajax({
method: "POST",
url: "../YourUrl",
data: { id: id}
})
}
тогда назовите это так:
if (id != '')//
{
ajaxCallback(id)
.done(function( response ) {
//do something with your response
});
}
Надеюсь, поможет