Можно ли настроить async: false
при вызове $.getJSON()
так, чтобы вызов блокировался, а не был асинхронным?
105
Можно ли настроить async: false
при вызове $.getJSON()
так, чтобы вызов блокировался, а не был асинхронным?
Ответы:
Вам нужно сделать вызов, используя
$.ajax()
его синхронно, например:Это будет соответствовать текущему использованию
$.getJSON()
следующим образом:источник
type: 'POST'
опцию, чтобы превратить это в сообщение - хотя вы не хотите использовать,async: false
если вам действительно не нужно - это заблокирует пользовательский интерфейс.Оба ответа неверны. Ты можешь. Вам нужно позвонить
перед вашим вызовом json ajax. И вы можете установить для него значение true после повторных вызовов (если на странице есть другие варианты использования ajax, если вы хотите, чтобы они были асинхронными)
источник
$.ajax
(и последующие сокращенные обертки , т.е.$.getJSON
,$.get
и т.д.) , чтобы быть синхронными. Более того, в документации даже предлагается не использовать это: «Описание: установить значения по умолчанию для будущих запросов Ajax. Его использование не рекомендуется».Думаю, вы оба правы. Более поздний ответ работает нормально, но это похоже на установку глобального параметра, поэтому вам нужно сделать следующее:
источник
В моем случае Джей Ди прав. Я должен добавить это перед звонком.
В моем предыдущем коде у меня есть это:
Работает найти. Затем я перехожу на
Предупреждение не определено.
Если я добавлю эти три строки, предупреждение снова покажет данные.
источник
Если вам просто нужно
await
избегать кода вложенности:источник
Я не думаю, что вы можете установить там эту опцию. Вам нужно будет использовать jQuery.ajax () с соответствующими параметрами (в основном getJSON просто переносит этот вызов в более простой API).
источник
Сверните свой собственный, например
источник