Javascript postMessage,我应该等多久?

Javascript postMessage,我应该等多久?,javascript,html,iframe,message,Javascript,Html,Iframe,Message,在重定向之前,我正在从类似这样的iframe发送一条消息: window.parent.postMessage('hide', '*'); console.log("message sent"); window.location = "url"; 我不确定postMessage是否是异步的,或者使用window.location离开该页面是否有任何问题,这可能会导致邮件无法到达目的地 我认为可能的答案是以下三种中的一种: 根本没问题,不管页面在之后发生了什么,消息都会被发送 我应该用setT

在重定向之前,我正在从类似这样的iframe发送一条消息:

window.parent.postMessage('hide', '*');
console.log("message sent");

window.location = "url";
我不确定
postMessage
是否是异步的,或者使用window.location离开该页面是否有任何问题,这可能会导致邮件无法到达目的地

我认为可能的答案是以下三种中的一种:

  • 根本没问题,不管页面在之后发生了什么,消息都会被发送

  • 我应该用setTimeout延迟
    窗口。location

  • 我应该听取回复,以确保它已被发送


  • 您在测试中观察到了什么顺便说一句,它是异步的,这似乎不重要(1),但我想确定这是每个浏览器和情况下的预期行为。好的,唯一100%确定的方法,以及任何支持postMessage的浏览器的未来证明是(3)-规范中没有我能看到的内容-阅读上述规范,函数“返回”在第8步,但在第10/11步,这意味着发送者的窗口对象正在被使用——因此,理论上,在我看来,规范中没有任何东西可以保证消息应该被发送