2016-10-17 16 views
-1

データをコールバック関数に渡しますか?コールバック関数が呼び出されるたびに

var unique_interests = window.facebook_interests.filter((v, i, a) => a.indexOf(v) === i); 
 
var input = map.getCenter(); 
 
var a = input.lat(); 
 
var b = input.lng(); 
 
var latlng = {lat: a, lng: b}; 
 
window.markersGP = []; 
 

 
for(var i=0; i<unique_interests.length; i++) 
 
{ 
 
    var request = { 
 
     location: latlng, 
 
     radius: '500', 
 
     query: unique_interests[i] 
 
    }; 
 
     
 
    console.log(request); 
 
    service = new google.maps.places.PlacesService(map); 
 
    service.textSearch(request, function (results, status){ 
 
     alert(request.query); 
 
    }); 
 
}

、ループの完全に実行され、そしてalert()は常に配列の最後の値を出力。関数呼び出しでデータをバインドする方法はありますか?

答えて

0

あなたは生命維持のパターンに適用することができます

for(var i=0; i<unique_interests.length; i++){ 
    var request = { 
     location: latlng, 
     radius: '500', 
     query: unique_interests[i] 
    }; 

    console.log(request); 

    (function (req) { 
     var service = new google.maps.places.PlacesService(map); 
     service.textSearch(req, function (results, status){ 
      alert(req.query); 
     }); 
    })(request); 
} 
:だから、コードは次のようなりsould

https://en.wikipedia.org/wiki/Immediately-invoked_function_expression

関連する問題