여기를 통해 데이터 목록을 처리해야합니다. locationId를 좌표로 변환하려면지도 지오 코더가 필요합니다. 지오 코더 클래스는 지오 코드 3 개의 인수 1 매개 변수 2를 사용하는 함수가 있습니다. successCallFunction 3. failCallFunction.
self.geocodeByLocationIdByArray = function (locationIds, callback)
{
var deferred = $.Deferred();
var result = [];
var convert = function() {
for (var i = 0; i < locationIds.length - 1; i++)
{
geocodingParameters = {
locationId: locationIds[i].locationId;
};
self.geocoder.geocoder(geocodingParameters, onGeocodeSuccess, function() { });
}
};
convert();
return deferred.promise();
};
onGeocodeSuccess = function (result) {
var locations = result.Response.View[0].Result,
i;
var result = [];
// Add a marker for each location found
for (i = 0; i < locations.length; i++) {
result.push(new geoCoordinate(locations[i].Location.DisplayPosition.Latitude, locations[i].Location.DisplayPosition.Longitude));
}
return result;
};
geocodeByLocationIdByArray 함수를 수정하여 모든 데이터가 선행되고 결과 배열을 반환 할 때까지 기다리는 방법은 무엇입니까? 나는 인자로 콜백을하지 않도록
이
가능한 중복 http://stackoverflow.com/questions/14220321/how-do-i-return-the- 비동기 호출 응답) –
비동기이기 때문에 할 수 없습니다. 콜백 함수를 전달하는 것처럼 보입니다. 결과를 얻은 후에 그 함수를 호출하면 어떨까요? –
ES6 Promises가 아닌'$ .Deferred'를 사용하기로 선택한 이유는 무엇입니까? 덕분에 – trincot