Javascript 未捕获的网络错误:无法执行';进口文件';在';WorkerGlobalScope&x27;

Javascript 未捕获的网络错误:无法执行';进口文件';在';WorkerGlobalScope&x27;,javascript,web-worker,Javascript,Web Worker,我试图使用ImportsTipts从web worker导入json数据,出现以下错误 未捕获的NetworkError:未能在“WorkerGlobalScope”上执行“importScripts”:无法加载位于(my:URL以从服务器获取数据)的脚本 Web工作者代码在这里。我能够从我的web worker线程和主js线程发送基本消息。我想从web worker线程从服务器获取jsonp数据,然后回复到主js线程 /*web worker js file to fetch json dat

我试图使用ImportsTipts从web worker导入json数据,出现以下错误

未捕获的NetworkError:未能在“WorkerGlobalScope”上执行“importScripts”:无法加载位于(my:URL以从服务器获取数据)的脚本

Web工作者代码在这里。我能够从我的web worker线程和主js线程发送基本消息。我想从web worker线程从服务器获取jsonp数据,然后回复到主js线程

/*web worker js file to fetch json data from server and then return to main javascript thread*/

self.onmessage = function(e)
{
    var curr = setInterval(function()
    {

         var message = e.data;     
            fetchMyTournament(message);

    }, 10000);
}



function fetchMyTournament(userid)
{
    self.postMessage('worker saying hi');


    var url = "(server URL mapping)?callback=processInfo&type=(typeOfArgument)&userId="+userid;



               importScripts(url);
            self.postMessage("After import script");



}
function processInfo(objJSON) 
{

    self.postMessage("Data returned from the server...: " 
                  + JSON.stringify(objJSON));
} 
importScript()必须放在函数外部。 对于您的情况,您应该使用fetch(url)。 您还应向每个函数添加async,并按如下方式使用:

let message = fetchMyTournament(message).then(function(result){return result;});

对于我的案例,我是这样导入的:
importScripts(“//cdn.jsdeliver.net/pockDB/5.3.1/pockDB.min.js”)

url应该以正确的http/https开头。 因此,改成这样解决了问题:
importScripts(“https://cdn.jsdelivr.net/pouchdb/5.3.1/pouchdb.min.js");

您知道这个错误发生了什么吗?