我写了一个简单的函数来确定你的城市位置。但是,我想知道是否有办法强制该函数等待getJSON,然后移动到下一行代码?在示例中,您会看到它显示“Alert 1”跳过“Alert 2”并直接转到“Alert 3”,然后显示“Alert 2”。先谢谢你。如何在运行代码的其余部分之前使getJSON等待?
最好的问候, 乔治
var Alpha;
function Location(){
\t alert(Alpha + " 1");
\t $.getJSON("http://freegeoip.net/json/?callback=?", function(location){
\t \t Alpha = location.city;
\t \t alert(Alpha + " 2");
\t }); \t
\t alert(Alpha + " 3");
}
$(document).ready(function() {
\t Location();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您可以使用承诺或回调。 getJSON对您的代码是异步的。 – DomeTune
你为什么不把这些代码移到你的回调中? – Milney