【发布时间】:2018-02-22 15:29:59
【问题描述】:
有没有办法让 postMessage “同步调用”? 意思:
- 从父级到 iFrame 执行 postMessage
- 等到父母收到一条消息(从 iFrame 发送)
例如:
function doSomething() {
targetiFrame.postMessage('actionA');
handleMessage('actionA').then(function() {
return true;
});
}
function handleMessage(action) {
return new Promise(function(resolve, reject) {
});
}
当然,这不起作用,因为我触发了handleMessage,而只有在收到正确的消息时才应该触发它。有没有办法等到收到“actionA”消息,然后才以 return true 结束函数?
【问题讨论】:
-
这听起来像XY problem。为什么你需要使这个同步?你想解决什么问题?
-
我真正需要的是 doSomething 将返回一个只能在 iFrame 中运行的函数的响应
-
@co.zohar - 这个问题解决了吗?如果是,你能回答你自己的问题吗? 10x
-
@vsync 嗨,请查看下面的答案