У меня проблема с вызовом функции из main внутри веб-работника, который я создал. Я создал объект, похожий на enum на Java языке:
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);
}
});
Проблема в том, что я не может получить доступ к функциям из основного: start()
, addchar()
et c.
Как я могу получить доступ к этим функциям внутри веб-работника? Я отправляю сообщения от основного веб-работнику, но это не работает, чтобы установить «соединение» с веб-работником с основным (и все же отправка сообщений не решает все мои проблемы, потому что я должен вызывать определенные функции c от основного внутри оператора switch).
Я пробовал многочисленные модификации кода, но не смог заставить его работать.