2012-02-06 6 views
1

Googleマップv3を使用してアドレス変換を行っています。 リクエストとコールバック関数をGeocoder.geocodeに渡します。コールバック関数はマップ上にマーカーを追加します。結局、私はmap地図 obejct、fullBoundsLatLngBounds obejctているところ、目の前ですべてのメーカーを作るためにmap.FitBounds(fullBounds)を使用しています。以下javascriptですべてのコールバックが終了したら何かを実行するには

は、私のコードの一部です:

for(i = 0; i < requestArray.length; i ++) 
    { 
     geo.geocode(requestArray[i], calbck); 
    } 

私の問題は、私はcalbckmap.fitBounds(fullBounds)を起動したときに、すべてのコールバック関数は、(私の観察ではいつも何を)終わっていないということです。では、どのようにすべてのコールバック関数が終了するようにfitBoundsを遅延させることができますか?

答えて

1

コールバックの数を知っている場合は、カウンタを増やすコールバックでいくつかの他の関数を呼び出すことができ、カウンターがコールバックの数と同じである場合、コードを実行します。

ような何か:

function myFunctionToExecuteAfterCallbacks() 
{ 
    numCallbacks++; 
    if(numCallbacks == numAllCallbacks) 
    { 
    // Code to execute here... 
    } 
} 

は、少なくともそれは私がそれを一度に解決方法を説明します。より良い解決策を知らないでください。 別の関数を呼び出す代わりに、イベントを発生させることもできます。しかし、それはほぼ同じだ...

はところで、私はこの上でいくつかのトピックを見つけました:

Best solution to wait for all ajax callbacks to be executed

javascript: execute a bunch of asynchronous method with one callback

関連する問題