2012-02-01 15 views
0

これをクロージャ内でsettimeout関数を使用して表現すると、APIを実行する前後に2秒の一時停止を作成できます。 geocoder.geocodeは非同期であることに注意してください。settimeout関数を使用したjavascriptクロージャ

function srPerformGeocode(addressToArray, nextRecord){        

     var address = addressToArray.join(","); 
     console.log(address);      

     if (geocoder){             
      glDelay = true; 
      geocoder.geocode({ 'address': address.trim() }, function 
      (results, status) { 
       // count number of geocodings attempted 
       glGeocodeCount ++;              
       if (status == google.maps.GeocoderStatus.OK){    
       } 
       else{ 
       } 
      }); 
     } 
} 
+0

理由:繰り返しサードパーティのAPIのを呼び出すときに、それが必要な時に、スロットル要求に丁寧です。 –

答えて

2
setTimeout (function() 
{ 
    geocoder.geocode(...); 

}, 2000); 
+0

これを変えてみました。繰り返し呼び出されると、関数が呼び出されるときに初めて機能するように見えます。その後のデイリーコールは無視されるようです。 –

+0

@MustaphaGeorge:動作していないコードを表示する必要があります。あなたが 'setTimeout(myFunction()、200)'トラップ(または同様のもの)に落ちてしまった今でも、 – hugomg

関連する問題