私は比較的新しいjavascriptです。プロトタイプコードをクリーンアップしようとしています。コールバックの深いネストレベルであり、読みにくいからです。私はGoogleReadyコールバックですべてcall_when_readyを移動することができます知っているが、これはcall_when_ready
が別のコールバックで呼び出された簡略化した例である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);
:私はこのような何かを達成しようとしています。
ので、私はこの機能を思い付いたが、それは動作しません:
function call_when_ready(variable, callback) {
let interval = setInterval(() =>
{
if (variable != undefined && variable != null) {
clearInterval(interval);
callback();
}
}, 3000);
}
変数は常にg_map
が移入されているにもかかわらず、nullを見せています。これをきれいにするにはどうすればいいですか?私はjQueryを使用することにもオープンしていますが、PromiseとDeffer edはあまりにも些細なことのように思えます。それとも私が知らないように、のようなコールバックをチェーン例えば、より良い方法があります:
function().finished(function).finished(alert(""));
あなたは正しいです、これは興味深いです。私は元の変数を参照するのではなく、値のコピーがチェックされているので、私の場合はうまくいかないと思う。多分? – ArmenB
それは私の推測です。 –