-1

К примеру есть функция:

function ajax() {
   $.ajax({
    //тут параметры
    success: function(data) {
    return true;
   }
 });
}

if(ajax()) console.log(true);

Проблема заключается в том, success после аякс запроса, не может вернуть true от самой функции. Как можно это решить, не перенося return true, в тело функции, после запроса?

2 Answers2

0

объявите любую переменную

var eventSend;

в том месте где приходят данные вы вызываете функцию

eventSend(переменная в которой хранятся пришедшие данные);

перед тем как отправить запрос вы добавляете обработчик на это событие

eventSend = function(data){//data - это пришедшие данные
//тут любые действия с пришедшими данными
       console.log(true);
    }

а далее отправляете запрос

Gs D
  • 935
-1

Смог найди для себя решения, опубликую его.

В функции которая делает аякс запрос, мы просто возвращаем полностью его.

    function ajax() {
//return объект запроса
      return $.ajax({
        //тут параметры
        success: function(data) {
       }
     });
    }

    if(typeof(ajax()) == 'object') console.log(true);

Параметры и проверку возвращаемого результата можно отредактировать под себя. Если мой метод не валидный, прошу объяснить в чем.

  • Вы его проверили? Получили false в условии if(typeof(ajax()) == 'object')? Куда попадает возвращаемый из success true в return true;? –  Feb 15 '18 at 15:14