MessageChannel ports variable is empty array

21 Views Asked by At

I've the following snippet that trying to send message to inner iframe:

const { port1, port2 } = new MessageChannel();
port1.addEventListener('message', ({ data }: MessageEvent) => res(data));
contentWindow?.postMessage({ event: `the-event`, payload }, '*', [port2]);

And this snippet on the iframe side:

const onMessageListener = ({ data, ports }) => {
  const { event, payload } = data;
  if (event === 'the-event') {
    console.log(data, ports); // "ports" is empty array
    state.payload = payload;
  }
};
window.addEventListener('message', onMessageListener);

But i get empty array in the ports variable, any ideas?

0

There are 0 best solutions below