我有:
getZoom(): Promise<number> {
return this._googleMapsApi.getMap().then((map:google.maps.Map) => map.getZoom());
}
我想查看缩放级别:
private onStartZoomEvent() {
console.log('on start zoom');
if (this._mapController.getZoom().valueOf() !== 12) {
this.disableGeolocationButton();
this._eventAggregator.trigger(this.disableGeolocation);
}
}
我做错了什么?
答案 0 :(得分:4)
承诺的一点是你不能同步获得价值。当你调用getZoom()时,它会返回一个promise。然后,您尝试在该Promise上调用valueOf();方法不存在,承诺尚未实现。
看起来应该是这样的:
private onStartZoomEvent() {
console.log('on start zoom');
this._mapController.getZoom()
.then((zoom) => {
if (zoom.valueOf() !== 12) {
this.disableGeolocationButton();
this._eventAggregator.trigger(this.disableGeolocation);
});
}
}