Ist es möglich, async: false
beim Aufrufen $.getJSON()
festzulegen, dass der Anruf blockiert und nicht asynchron ist?
105
Ist es möglich, async: false
beim Aufrufen $.getJSON()
festzulegen, dass der Anruf blockiert und nicht asynchron ist?
Antworten:
Sie müssen den Anruf
$.ajax()
synchron wie folgt tätigen :Dies würde derzeit
$.getJSON()
wie folgt übereinstimmen :quelle
type: 'POST'
Option hinzufügen , um daraus einen Beitrag zu machen - obwohl Sie ihn nur verwenden möchten,async: false
wenn Sie es wirklich brauchen - wird die Benutzeroberfläche gesperrt.Beide Antworten sind falsch. Sie können. Sie müssen anrufen
vor Ihrem json ajax anruf. Und Sie können es auf true setzen, nachdem der Anruf erneut ausgeführt wurde (wenn auf der Seite andere Verwendungen von Ajax vorhanden sind, wenn Sie möchten, dass sie asynchron sind).
quelle
$.ajax
(und spätere Stenografie Wrapper dh$.getJSON
,$.get
etc.) synchron sein. Darüber hinaus wird in der Dokumentation sogar empfohlen, dies nicht zu verwenden: "Beschreibung: Legen Sie Standardwerte für zukünftige Ajax-Anforderungen fest. Die Verwendung wird nicht empfohlen."Ich denke ihr beide habt recht. Die spätere Antwort funktioniert einwandfrei, entspricht jedoch dem Festlegen einer globalen Option, sodass Sie Folgendes tun müssen:
quelle
In meinem Fall hat Jay D recht. Ich muss dies vor dem Anruf hinzufügen.
In meinem vorherigen Code habe ich Folgendes:
Es funktioniert zu finden. Dann wechsle ich zu
Die Warnung ist undefiniert.
Wenn ich diese drei Zeilen hinzufüge, werden die Daten in der Warnung erneut angezeigt.
quelle
Wenn Sie nur
await
Verschachtelungscode vermeiden müssen:quelle
Ich glaube nicht, dass Sie diese Option dort einstellen können. Sie müssen jQuery.ajax () mit den entsprechenden Parametern verwenden (im Grunde verpackt getJSON diesen Aufruf auch in eine einfachere API).
quelle
Rollen Sie Ihre eigenen zB
quelle