2017-09-22 3 views
0

Wie kann ich die Nachrichten von window.postMessage nur für eine bestimmte Zeit anhören?Wie setze ich Timeout für das Abhören von Nachrichten, die von window.postMessage kommen?

Ich versuchte setTimeout in der die Verwendung der Funktion des Ereignis-Listener, aber das funktioniert nicht.

Mein Versuch:

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); 

Antwort

0

Ihren Code neu anordnen .removeEventListener() Anruf innerhalb setTimeout() zu setzen, die nicht innerhalb processMessage Funktion

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

Sie SetTimeout das Ereignis ausgeführt werden muss, aber Ihre removeEventListener der Nachricht doesn; t delay.

Verwandte Themen