var json = $.getJSON("sun.json", function(json1) {
$.each(json1, function(key, data) {
//Json Code
});
});
json.done(function() {
$.getJSON("sun2.json", function(json1) {
$.each(json1, function(key, data) {
//More json Code
});
});
});
Wäre es möglich, dies zu tun? Ich möchte etwas mit der ersten JSON-Datei erzeugen, dann, wenn es fertig ist, mache mehr Sachen mit der zweiten JSON-Datei. Ich verstehe nicht, warum es nicht funktionieren würde, aber ich dachte, ich würde hier eine Klarstellung bekommen, nur für den Fall.
Antworten:
3 für die Antwort № 1Ja, Sie können ausführen $.getJSON
innerhalb der .done
Funktion.
Das heißt, eine gute Praxis für die Verkettung der $.getJSON
Anrufe (Danke an die jquery versprechen Schnittstelle) wäre die Nutzung der then
Funktion und könnte so etwas aussehen ...
$.getJSON("sun.json", function(json) {
$.each(json, function(key, data) {
//do something
});
})
.then(function() {
return $.getJSON("sun2.json", function(json) {
$.each(json, function(key, data) {
//do something with sun2.json
});
});
})
.then(function() {
return $.getJSON("sun3.json", function(json) {
$.each(json, function(key, data) {
//so something with sun3.json
});
});
});
Verkettung der aufgeschobenen Versprechen wie diese verhindert die "Rückruf-Pyramide des Schicksals" erlaubt eine flachere und lesbarere Code-Struktur.
NACHTRAG Danke an @BenjaminGruenbaum für das Aufräumen meiner früheren Verwirrung!