Код после $ .post () выполняется до завершения пост-запроса - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь получить данные с сервера с помощью пост-запроса (jQuery's $ .post) и назначить его переменной JavaScript.

Код выглядит следующим образом:

function getData() {        
    var zones = DUMMY_zones;
    var workers = [];

    console.log("1");

    $.post('server/main.php', {info: 'req_workers'}, function(result) {
        var result = JSON.parse(result);

        console.log("2");

    });


    console.log("3");
    return [zones, workers];
}

Странно, но возвращение выполняется до конца запроса $ .post, поэтому workers является неопределенной переменной.Вывод на консоль выглядит следующим образом:

ppe_c_js.js:82 1
ppe_c_js.js:90 3
ppe_c_js.js:85 2

Как выполнить код последовательно?

Спасибо!

1 Ответ

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

Вы можете сделать сообщение jquery synchronous.но это плохая практика.Таким образом, ваш браузер будет находиться в состоянии зависания во время операции.

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType,
  async:false
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...