我使用的是Angular Google Maps包,有时我收到一些来自客户端的错误日志,这些客户端显然无法加载某些元素-例如本例中的标记-。我无法在开发环境中重现该错误。我的问题不是真正地解决该错误(也许只是资源不可用),而是如何捕获该异常,以便可以优雅地处理它。
Uncaught (in promise): Error: Could not load \"marker\".
https://maps.googleapis.com/maps/api/js?v=3&callback=agmLazyMapsAPILoader&key=xxx&libraries=places:82:241
P@https://www.my-website.com/polyfills.e7eccfefd953dba9834b.js:1:19546
onInvokeTask@https://www.my-website.com/vendor.19003f536e32efb3f8e2.js:1:319734
runTask@https://www.my-website.com/polyfills.e7eccfefd953dba9834b.js:1:4037
invokeTask@https://www.my-website.com/polyfills.e7eccfefd953dba9834b.js:1:9935
y@https://www.my-website.com/polyfills.e7eccfefd953dba9834b.js:1:23380
b@https://www.my-website.com/polyfills.e7eccfefd953dba9834b.js:1:23605
要检查是否已加载Google Maps,我使用以下方法:
public async loadMapsAPI() {
try {
this.loadingMapsAPI = true;
this.logger.info('Loading maps API...');
await this.mapsAPILoader.load();
this.loadingMapsAPI = false;
return this.mapsAPILoaded = true;
} catch (e) {
this.loadingMapsAPI = false;
return this.mapsAPILoaded = false;
}
}