封装异步加载腾讯地图JavaScript SDK的函数

文章介绍了如何封装一个Promise函数MapA,用于异步加载腾讯地图SDK,并在成功加载后调用init函数,若加载失败则捕获错误。开发者可通过.then和.catch处理相应状态。
摘要由CSDN通过智能技术生成

封装为一个Promise对象

export default function MapA() {
    return new Promise(function(resolve, reject) {
      window.init = function() {
       
        resolve()
      }
    
        const script = document.createElement('script')
        script.type = 'text/javascript'
        script.src = process.env.VUE_APP_QQURL+'&callback=init'
        script.onerror = reject
        document.body.appendChild(script);
    })
}

import MapA from “@/utils/map”;

MapA().then(() => {
this.initMap();
});

1. 函数 TMapLoad 返回一个新的Promise实例,这样可以在调用该函数的地方使用.then方法来处理成功加载腾讯地图SDK之后的逻辑。
2. 在Promise构造器内部:•定义了一个名为init的全局函数,当腾讯地图JS文件加载完毕并执行完回调时,这个函数会被调用。通过设置resolve作为init函数的内容,使得在腾讯地图加载完成后能够触发Promise的成功状态。
3. 创建一个新的script元素,指定其类型为text/javascript,并将其src属性设置为从环境变量process.env.VUE_APP_TMAP获取的地图API URL,同时追加了回调参数&callback=init,表示腾讯地图API加载完成后的回调函数为init。
4. 为script元素设置了onerror事件处理器,当脚本加载失败时,调用reject函数,这将触发Promise的失败状态。
5. 将创建好的script元素添加到文档的body中,从而开始加载腾讯地图JavaScript SDK。
6. 使用此函数后,可以这样调用并在加载成功或失败时进行处理:TMapLoad().then(() => {
  // 腾讯地图SDK加载成功后的操作...
}).catch((error) => {
  // 腾讯地图SDK加载失败后的错误处理...
});
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值