为什么 SharedWorker onConnect 事件有一个 Ports 数组?
Why does the SharedWorker onConnect event have a Ports array?
在我见过的所有示例中,它们都与此类似
onconnect = function(e) {
var port = e.ports[0];
port.onmessage = function(e) {
var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
port.postMessage(workerResult);
}
port.start();
}
是否存在 ports 数组包含多个元素的实例?在 SharedWorker 上使用 chrome://inspect 并打印出 e
,我得到
无论生成多少个共享 SharedWorker 的实例,其长度始终为 1。为什么它不只是一个 MessageEvent 而不是一个数组?它是一个数组有什么用例?
原因是它重用了 MessageEvent
接口,有时可以使用多个端口的数组进行调度。就这些了。
在我见过的所有示例中,它们都与此类似
onconnect = function(e) {
var port = e.ports[0];
port.onmessage = function(e) {
var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
port.postMessage(workerResult);
}
port.start();
}
是否存在 ports 数组包含多个元素的实例?在 SharedWorker 上使用 chrome://inspect 并打印出 e
,我得到
无论生成多少个共享 SharedWorker 的实例,其长度始终为 1。为什么它不只是一个 MessageEvent 而不是一个数组?它是一个数组有什么用例?
原因是它重用了 MessageEvent
接口,有时可以使用多个端口的数组进行调度。就这些了。