Подобный вопрос был задан много раз, я знаю, но мой случай довольно конкретный и, насколько мне известно, никогда не затрагивался раньше. По крайней мере, от того, что я могу найти.Подождите, пока AJAX вернет успех, прежде чем продолжить код Javascript?
Что я делаю, это создание объектов с использованием UID. Все, что построил объект, требует этого UID, и оно требует, чтобы оно было проверено как уникальное, прежде чем с ним можно было бы сделать что-либо.
Я произвольно генерирую UID в javascript, и я проверяю его на все остальные записи в базе данных SQL. Я отправляю в базу данных с помощью PHP и Ajax.
Основная проблема, с которой я сталкиваюсь, заключается в том, что Javascript не ждет ответа Ajax и вместо этого просто продолжает катиться. Ajax должен использовать обработчик успеха. Это невозможно для меня, потому что я не может ничего не делать, пока не буду уверен, что UID проверен.
Есть ли меток или решение этой проблемы? Обещания не будут работать, потому что, как я уже говорил, UID является неотъемлемой частью построения объекта сам по себе, поэтому использование заполнителей не будет работать.
Заранее благодарен!
Если вы используете jQuery, посмотрите параметр 'async' $ .ajax (установите его на' false') - см. Также http://api.jquery.com/jQuery.ajax/ – Andreas
, поэтому .. .. почему вы не можете подождать с созданием объекта, пока ваш первый вызов ajax не вернется с успехом? Вы можете использовать метод создания объекта из этого обратного вызова, верно? –
Похоже, вы генерируете UID на стороне клиента, а затем проверяете с сервера/db. Не можете ли вы создать проверенный UID на сервере и перейти на страницу при первой загрузке? –