var data = 0; /** * 下载图片 * @param {String} url 图片下载地址 */ function downloadImage(url, callSuccess) { let xhr = new XMLHttpRequest(); xhr.open('get', url, true); xhr.responseType = "blob"; //设置返回类型,此处我用于下载文件 所以返回blob xhr.onload = function() { // 请求完成 if (this.status === 200) { var blob = this.response; var bmpPromise = createImageBitmap(blob, { imageOrientation: "none", premultiplyAlpha: "none", colorSpaceConversion: "default", }); bmpPromise.then(function(image) { callSuccess(image); }) } else { console.log('===>>>', url + ' Not found'); } } /* 发送请求 */ xhr.send(); } /* 接收主线程发送的文件下载请求 */ onmessage = function(event) { data = event.data; let url = data.url + '/tile/' + data.level + '/' + data.y + '/' + data.x; /* 发送请求下载文件 */ downloadImage(url, function(image) { let outObj = { key: data.key, x: data.x, y: data.y, level: data.level, image: image, } postMessage(outObj); }) }