javascript代码的执行顺序

问题描述 投票:0回答:1

我是Javascript的新手,我想知道为什么我的“console.log('从未到达')”代码永远不会被执行

我有这么简单的代码行:

我的内容脚本

function myFunction() {

    if (window.location.href.toString().toLowerCase().indexOf('https://www.google.de/') > -1)
    {
        var myPort = browser.runtime.connect({name:"port-from-cs"});

        myPort.onMessage.addListener(function(m) {
          console.log(m.greeting);

        });

        console.log('never reached ');
    }
}
myFunction();

我的背景脚本

var portFromCS;

function connected(p) {
  portFromCS = p;

  var allOpenWindows = browser.windows.getAll();

  allOpenWindows.then(function(result){ 
    portFromCS.postMessage({greeting: "Windows opened: " + result.length.toString()});                          
  }); 

}
browser.runtime.onConnect.addListener(connected);

在我的浏览器中输入google.de后,我的内容脚本连接到我的后台脚本,然后我统计所有打开的Windows并将消息发送回内容脚本。在控制台中,我可以看到消息,但从未到达最后一个console.log。怎么了?

编辑:

enter image description here

javascript promise firefox-webextensions
1个回答
0
投票

因为window.location.href.toString()。toLowerCase()。indexOf('https://www.google.de/')给你-1而-1不能大于-1如果你替换-1> = -1你的if块将执行

© www.soinside.com 2019 - 2024. All rights reserved.