[英]Wait for asynchronous task to complete before continuing?
我正在嘗試通過Google Maps JavaScript API獲取位置坐標,這是異步發生的。
這是我要檢索的功能:
function getCoords(input_address)
{
var geocoder = new google.maps.Geocoder();
var addr = {
address: input_address
};
var callback = function(result, status)
{
if (status == "OK") {
var coords = result[0]['geometry']['location'];
console.log(coords.toUrlValue());
}
};
geocoder.geocode(addr,callback);
}
我想通過ajax函數將坐標與表單的其余部分一起提交。
但是,請測試以下內容:
form.submit(function(event){
event.preventDefault();
var addr = $("input[type='text']").val();
getCoords(addr);
console.log('should wait');
});
輸出:
should wait
coordinates
有沒有一種方法可以確保在執行下一條指令之前完成getCoords
函數?
為此使用回調函數,在執行geocoder.geocode();
之后執行其他工作geocoder.geocode();
就像是
function getCoords(input_address){
......
......
geocoder.geocode(addr, function (){
doYourJobNow(); //as suggested by tgun926
});
}
function doYourJobNow(){
console.log('should wait');
}
//result would be
//coordinates
//should wait
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.