Angular 未捕获(承诺中):错误:无法加载\“;标记\“;

Angular 未捕获(承诺中):错误:无法加载\“;标记\“;,angular,google-maps,angular-google-maps,Angular,Google Maps,Angular Google Maps,我正在使用这个包,有时我会收到一些来自客户端的错误日志,这些客户端显然无法加载某些元素,比如在本例中的标记。我无法在开发环境中重现错误。我的问题不是如何解决错误(可能资源不可用),而是如何捕获该异常以便优雅地处理它 Uncaught (in promise): Error: Could not load \"marker\". https://maps.googleapis.com/maps/api/js?v=3&callback=agmLazyMapsAPILoader&ke

我正在使用这个包,有时我会收到一些来自客户端的错误日志,这些客户端显然无法加载某些元素,比如在本例中的标记。我无法在开发环境中重现错误。我的问题不是如何解决错误(可能资源不可用),而是如何捕获该异常以便优雅地处理它

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地图,我使用以下方法:

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;
        }
    }

你知道当这种情况发生时谷歌地图是否被加载了吗?或者地图被渲染,但只是标记没有出现在地图上?我添加了一段代码来回答您的问题。我依赖于
MapsAPILoader.load()
被解析的承诺。我只在成功解析的情况下显示映射。我检查了API文档并找到了
mapReady()
,您试过了吗?似乎它可以在映射完全正确加载后用作回调。我的猜测是,如果制造商失败,回调将不会触发。如果你觉得有用的话,我可以贴一个例子。我用
[ng if]=“mapIsReady”
agm标记包装在
ng模板中。当
agm map
发出
(mapReady)
时,我正在设置
mapIsReady
。我会看看错误是否继续发生。我仍然会不时地获取错误日志,但次数要少得多,因此我无法真正判断这是否是正确的解决方案。