Jac*_*ack 5 javascript web-worker
好吧,这有点难以解释,但是这里,我正在使用网络工作人员,并且我在网络工作人员脚本中定义了函数,并且我想调用一个特定的函数,传入另一个函数作为参数,问题是我试图使用worker.postMessage从我的主脚本中执行此操作。如果我发布一些代码可能会更清楚......
这是我的主要脚本:
worker.postMessage({'cmd': 'register', 'funcName': 'someFunction'});
Run Code Online (Sandbox Code Playgroud)
这是来自工作脚本:
self.addEventListener('message', function(e) {
var data = e.data;
switch (data.cmd) {
case 'register':
registerEvent(data.funcName);
break;
case 'unregister':
break;
default:
self.postMessage('Unknown command: ' + data.msg);
};
}, false);
function someFunction() {
}
function registerEvent(someFunction) {
}
Run Code Online (Sandbox Code Playgroud)
所以我知道这段代码是错误的并且不起作用,但我想您知道我想要实现的目标。
我会做这样的事情:
self.addEventListener('message', function(e) {
var data = e.data;
switch (data.cmd) {
case 'register':
registerEvent(data.funcName);
break;
case 'unregister':
break;
default:
self.postMessage('Unknown command: ' + data.msg);
};
}, false);
self.someFunction = function() {}
function registerEvent(someFunctionName) {
self[someFunctionName]();
}
Run Code Online (Sandbox Code Playgroud)
或者用该函数创建一个单独的对象,但要确保它是对象的方法,这样调用就变得很容易。
| 归档时间: |
|
| 查看次数: |
4937 次 |
| 最近记录: |