代码之家  ›  专栏  ›  技术社区  ›  user7607751 Rob W

如何设置侦听来自窗口的消息的超时。邮件后?

  •  0
  • user7607751 Rob W  · 技术社区  · 7 年前

    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);
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   guest271314    7 年前

    重新排列代码以放置 .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);
    
        2
  •  1
  •   JiangangXiong    7 年前