Возврат значения обратного вызова вне функции обратного вызова (ajax) - PullRequest
0 голосов
/ 15 февраля 2019

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

Я создаю функцию, основываясь на теме: Как вернуть ответ от асинхронного вызова?

(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 при обратном вызове

1 Ответ

0 голосов
/ 15 февраля 2019

Есть два способа сделать это, вы можете использовать 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
                            });
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...