要確定請求完成 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();
})