1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| const { port1, port2 } = new MessageChannel(); port1.postMessage('hello') port2.onmessage = (e) => { console.log(e.data) }
const { port1, port2 } = new MessageChannel(); const obj = { a: 1, b: { c: 2 } } port1.postMessage(obj) port2.onmessage = (e) => { console.log(e.data) console.log(e.data === obj) }
function deepClone(obj) { return new Promise(resolve => { const { port1, port2 } = new MessageChannel(); port1.postMessage(obj); port2.onmessage = ev => resolve(ev.data); }); }
|