Как синхронизировать код с асинхронным вызовом ajax?

У меня появилась такая проблема: я отправляю post запрос в php скрипт для генерации карты уровня (json). Он приходит, но к тому моменту когда он обработан, весь написанный код уже отработал. И как следствие все нужные значения на карте (двухмерный массив с экземплярами класса "одной клетки"), были нулевыми. Этот массив создается с этими экземплярами с нулевыми значениями, и отправляется на генерацию.
Из глобальной области видимости вызываются инициализации разных подуровней "движка". Первый Init создает окружение вместе с картой, дальше инициализируются подуровни которым эта карта нужна.
Консольный вывод о готовности карты появляется только в конце исполнения глобальной области. У кого нибудь есть идеи? Я уже все костыли перепробовал.
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Либо сделать вызов синхронным (до получения ответа полностью остановится выполнение JS), либо перенести код, которому нужна карта, в callback или promise и выполнять его после получения карты.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
Владимир, самый верный и надежный путь, изучить javascript. потратьте 2 дня на прочтените learn.javascript.ru и у вас исчезнут такие вопросы. Не сделаете это и на ответах здесь никогда не поймете что почему и как. Единственное, что увидите ключ, как аякс сделать синхронным и будете делать говнокоды....
А потому рекомендую несложный путь, быстро ознакомиться с документацией по языку. Иначе уровень ваших вопросов не подымется и через пол года...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы