0
我想知道,如果有一種方法可以讓jQuery延遲與谷歌地理編碼器一起工作。我想是這樣的:谷歌地理編碼器和jQuery推遲
// ...
_geocoder: function(address) {
if (!this.props.geocoder) {
this.props.geocoder = new google.maps.Geocoder();
}
var deferred = $.Deferred(),
geocoder;
geocoder = this.props.geocoder.geocode({ 'address': address }, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
deferred.resolve({
lat: results[ 0 ].geometry.location.k,
lng: results[ 0 ].geometry.location.A
});
} else {
deferred.reject();
}
return deferred.promise();
});
$.when(geocoder()).then(
function(data) {
alert(status);
},
function() {
alert("Defer rejected");
}
);
},
// ...
然而google.maps.Geocoder
不返回一個jQuery Deferred對象,從而有望這段代碼將無法正常工作。有沒有其他方法可以做到這一點? 我也不確定return deferred.promise();
,因爲我看了一些代碼示例,其中只使用了return deferred;
。有什麼區別嗎?