[英]How to setTimeout for listening to messages coming from window.postMessage?
How can I listen to the messages coming from window.postMessage
only for amount of time? 我如何只听取来自window.postMessage
的消息一段时间?
I tried to use setTimeout
inside the the event listener's function but this doesn't work. 我试图在事件侦听器的函数中使用setTimeout
,但这不起作用。
My try: 我的尝试:
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);
Rearrange your code to place .removeEventListener()
call within setTimeout()
, which does not need to be within processMessage
function 重新排列代码以将.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);
您设置了setTimeout事件运行,但是消息的removeEventListener没有延迟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.