2017-09-22 41 views
0

我怎样才能听到来自window.postMessage的信息只有一段时间?如何设置TimeTime来监听来自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); 

回答

0

重新安排你的代码放置内setTimeout().removeEventListener()通话,这并不需要是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); 
0

您的setTimeout的情况下运行,但你消息的removeEventListener不会延迟。

相关问题