为什么SharedWorker onConnect事件具有Ports数组?

时间:2016-09-06 07:43:43

标签: javascript web-worker shared-worker

在我看过的所有例子中,它们与此类似

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,我得到了

MessageEvent

无论生成多少个共享SharedWorker的实例,其长度始终为1.为什么它不仅仅是MessageEvent而不是数组?它是一个数组的用例是什么?

1 个答案:

答案 0 :(得分:2)

原因是它重用MessageEvent接口,有时可以使用多个端口的数组进行调度。就是这样。