請求異步js,請求完成後執行代碼

要確定請求完成 js 文件,才執行相關的代碼。

場景,引用了百度地圖的 js-sdk, 需要實例化 SDK 對象,但是這個引用加載JS-SDK文件其實是異步的,在沒請求完成之前就實例化對象就會報錯,提示找不到該對象。

解決辦法:

function LoadBaiduMapScript() {
    //console.log("初始化百度地圖腳本...");
    const AK = 你的密鑰;
    const BMap_URL = "https://api.map.baidu.com/api?v=2.0&ak="+ AK +"&s=1&callback=onBMapCallback";
    return new Promise((resolve, reject) => {
        // 插入script腳本
        let scriptNode = document.createElement("script");
        scriptNode.setAttribute("type", "text/javascript");
        scriptNode.setAttribute("src", BMap_URL);
        document.body.appendChild(scriptNode);
        // 百度地圖異步加載回調處理
        window.onBMapCallback = function () {
            console.log("百度地圖腳本初始化成功...");
            resolve(BMap);
        };
    });
}
LoadBaiduMapScript.then((bMap)=>{
    var bbMap = new bMap();
})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章