我對JavaScript比較新,我試圖清理我的原型代碼,因爲它是buncha深層嵌套的回調函數,很難閱讀。我想實現這樣的事情:在javascript中準備好函數時創建一個調用
GoogleMaps.ready(map_id_name, function(map) {
g_map = map.instance;
})
...
call_when_ready(g_map, set_map_viewport);
call_when_ready(g_map, create_markers);
call_when_ready(g_map, update_icons);
call_when_ready(g_map, update_geometry_display);
call_when_ready(g_map, update_ui_display);
我知道我可以在GoogleReady回調將所有call_when_ready但是這是一個簡單的例子,其中call_when_ready
被稱爲在另一個回調。
,所以我想出了這個功能,但它不工作:正在填充
function call_when_ready(variable, callback) {
let interval = setInterval(() =>
{
if (variable != undefined && variable != null) {
clearInterval(interval);
callback();
}
}, 3000);
}
變量總是空出即使g_map
。我怎樣才能以乾淨的方式做到這一點?我也很樂意使用jQuery,但Promise和Deffer ed似乎太過分了。或者,也許是有示例鏈式像這樣,我不知道回調更好的辦法:
function().finished(function).finished(alert(""));
你是對的,這很有趣。我想它不適用於我的情況,因爲可能檢查值的副本而不是引用原始變量。也許? – ArmenB
這也是我的猜測。 –