Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 从服务器向webworker提供服务时webworker中的路径解析_Angularjs_Web Worker - Fatal编程技术网

Angularjs 从服务器向webworker提供服务时webworker中的路径解析

Angularjs 从服务器向webworker提供服务时webworker中的路径解析,angularjs,web-worker,Angularjs,Web Worker,我正在尝试为highlightjs设置webworker。我无法在webworker中导入库。这是带有node.js服务器的angular应用程序。我肯定我遗漏了一些简单的愚蠢的东西。请帮我解决这个问题 突出显示.webworker.js onmessage = function(event) { console.log('worker location', self.location); importScripts('highlight.pack.js'); // DOES NOT L

我正在尝试为
highlightjs
设置webworker。我无法在webworker中导入库。这是带有node.js服务器的angular应用程序。我肯定我遗漏了一些简单的愚蠢的东西。请帮我解决这个问题

突出显示.webworker.js

onmessage = function(event) {
  console.log('worker location', self.location);
  importScripts('highlight.pack.js'); // DOES NOT LOAD
  var result = self.hljs.highlightAuto(event.data);
  postMessage(result.value);
}
webworker.controller.jsnode.js向客户端提供脚本的webwoker控制器(需要这样做以避免跨域错误)

返回webworker脚本(如上所示)

网络工人工厂

var app = angular.module('webworker.services', []);
app.factory('highlightWebworker', ['$q', 'wizMarkdownSvc', function($q, wizMarkdownSvc) {

    var worker = new Worker('/webworkers/highlight');
    var defer = $q.defer();
    worker.onmessage = function(code) {
       console.log('data from worker',code);
        defer.resolve(code);
    };

    return {
        highlightCode: function(markdownStr) {
            defer = $q.defer();
            worker.postMessage(markdownStr); // Send data to our worker. 
            return defer.promise;
        }
    };
}]);
var app = angular.module('webworker.services', []);
app.factory('highlightWebworker', ['$q', 'wizMarkdownSvc', function($q, wizMarkdownSvc) {

    var worker = new Worker('/webworkers/highlight');
    var defer = $q.defer();
    worker.onmessage = function(code) {
       console.log('data from worker',code);
        defer.resolve(code);
    };

    return {
        highlightCode: function(markdownStr) {
            defer = $q.defer();
            worker.postMessage(markdownStr); // Send data to our worker. 
            return defer.promise;
        }
    };
}]);