如何设置收听来自 window.postMessage 的消息的超时时间?
How to setTimeout for listening to messages coming from window.postMessage?
我怎样才能只在一段时间内收听来自 window.postMessage
的消息?
我尝试在事件侦听器的函数中使用 setTimeout
,但这不起作用。
我的尝试:
function processMessages(message) {
//setTimeout(function() {
if (message) {
console.log("you have a message");
} else {
console.log("no messages came"); //<=== I can't get here!
}
//},10000);
window.removeEventListener("message", processMessages, false);
}
window.addEventListener("message", processMessages, false);
重新安排您的代码以将 .removeEventListener()
调用置于 setTimeout()
内,而无需置于 processMessage
函数内
function processMessages(message) {
if (message) {
console.log("you have a message");
} else {
console.log("no messages came"); //<=== I can't get here!
}
}
window.addEventListener("message", processMessages, false);
var timeout = setTimeout(function() {
window.removeEventListener("message", processMessages, false);
}, 10000);
您设置了事件超时 运行,但是您的消息的 removeEventListener 没有延迟。
我怎样才能只在一段时间内收听来自 window.postMessage
的消息?
我尝试在事件侦听器的函数中使用 setTimeout
,但这不起作用。
我的尝试:
function processMessages(message) {
//setTimeout(function() {
if (message) {
console.log("you have a message");
} else {
console.log("no messages came"); //<=== I can't get here!
}
//},10000);
window.removeEventListener("message", processMessages, false);
}
window.addEventListener("message", processMessages, false);
重新安排您的代码以将 .removeEventListener()
调用置于 setTimeout()
内,而无需置于 processMessage
函数内
function processMessages(message) {
if (message) {
console.log("you have a message");
} else {
console.log("no messages came"); //<=== I can't get here!
}
}
window.addEventListener("message", processMessages, false);
var timeout = setTimeout(function() {
window.removeEventListener("message", processMessages, false);
}, 10000);
您设置了事件超时 运行,但是您的消息的 removeEventListener 没有延迟。