Ciao, semplicemente perche' getJSON o tutte le chiamate comunque in Ajax sono asincrone e cioe' vengono eseguite in background in maniera indipendente. La tua chiamata potrebbe durare per esempio 3 secondi ma il tuo script continuerebbe comunque.
Tutto quello che sta all'interno del getJSON verrà eseguito quando quella chiamata avrà finito.
Il resto proseguirà comunque. E' quindi corretto il primo caso. Se devi fare qualcosa solo dopo avere recuperato dal json dei dati lo devi fare al suo interno(o richiamare una funzione al completamento).
Oppurecodice:$.getJSON("http://localhost/****",function(json){ var id=json.features.length; console.log(id); });
codice:function prova(json){ var id=json.features.length; console.log(id); } $.getJSON("http://localhost/****",prova);
Nella documentazione è spiegato come funziona

Rispondi quotando