【发布时间】:2014-08-29 15:40:41
【问题描述】:
我想知道,是否有办法让 jQuery Deferred 与 Google Geocoder 一起工作。我试过类似的东西:
// ...
_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;。有什么区别吗?
【问题讨论】:
标签: jquery jquery-deferred google-geocoder