2016-09-06 5 views
5

、彼らは、ポートの配列は、これまで複数の要素を持っていますインスタンスがあります。このSharedWorkerのonConnectイベントにポート配列があるのはなぜですか?私が見てきたすべての例で

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(); 
} 

に似ていますか?クロムを使用した:SharedWorkerに点検//とeをプリントアウト、私はなぜそれだけではありません

MessageEvent

かかわらず、長さは常に1であるSharedWorker、共有して生み出されているどのように多くのインスタンスの取得します配列ではなくMessageEventですか?それが配列であるというユースケースは何ですか?

答えて

2

理由は、時々複数のポートのアレイとディスパッチできるMessageEventインターフェイスを再利用することです。それで全部です。

+0

とはどのような場合ですか? WebSocketを使用していますか?私は非常に興味があります。 –

+0

'window.postMessage'を使うと、' transfer'引数でポートの配列を渡すことができます。 https://html.spec.whatwg.org/multipage/comms.html#introduction-12 https://html.spec.whatwg.org/multipage/comms.html#ports-as-the-basis-を参照してください。ウェブ上のオブジェクト能力モデル – zcorpan

関連する問題