天天看点

C1——组件初始化时报错cesium未定义

问题:【这里cesium已经引入了】,适合的场景是vue的组件created等方法里面调用初始化事件,但报错说cesium未定义的情况。

思路:created里调用初始化init方法;init方法里判断cesium不存在的话延迟回调自身。

代码如下:

created() {
    this.init();
},
methods: {
    init(){
        let _this = this;
        let viewer = this.$globe.viewer;
        if (viewer) {
            if (this.timerInit) {
                clearTimeout(this.timerInit);
                console.log("销毁定时器 timerInit ");
            }
            window.handlerQueryProperties = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
        } else {
            this.timerInit = setTimeout(() => {
                _this.init();
            }, 1000);
        }
    },
}
           

注意:定时器应该及时销毁!