为什么 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 接口,有时可以使用多个端口的数组进行调度。就这些了。