Javascript WebWorkers

问题描述 投票:1回答:1

我在创建的Web Worker中从main调用函数时遇到问题。我用Java语言中的enum相似地创建了一个对象:

const states = {
    START: 'start',
    ADDCHAR: 'addchar',
    WORDBEFORE: 'wordbefore',
    REMOVECHAR: 'removechar',
    RESET: 'reset'
  }

并且每个元素都具有我在以下代码中使用的状态:

  self.addEventListener('message', function(e) {
  while( true ){
      switch ( state ){
          case states.START: 
                              start();
                              state = states.ADDCHAR;

          case states.ADDCHAR:
                              addchar();
                              state = states.WORDBEFORE;

          case states.WORDBEFORE:
                              sleep(3000);
                state = states.REMOVECHAR;

          case states.REMOVECHAR:
                              removeChar();
                              state = states.RESET; 
          case states.RESET:
                              reset();
                state = states.START;
      }
      sleep(1000);
  }
});

问题是我无法从main访问函数:start(),addchar()等。>>

如何从网络工作者内部实现这些功能?我从main向Web工作者发送消息,但是从Web worker到Main进行“连接”是行不通的(并且仍然发送消息不能解决我的所有问题,因为我必须从Main调用特定功能在switch语句中)。

我尝试对代码进行大量修改,但无法解决。

我在创建的Web Worker中从main调用函数时遇到问题。我用Java语言与枚举类似地创建了一个对象:conststates = {START:'start',...

javascript html frontend web-worker
1个回答
0
投票

浏览器窗口中加载的JavaScript脚本范围内的函数和全局变量对于Web Worker来说是不可访问的。

© www.soinside.com 2019 - 2024. All rights reserved.