错误的代码部分首先执行

时间:2016-12-27 18:25:29

标签: javascript google-chrome console

我需要获取选项卡的当前URL才能解析它。我写了以下内容但后来遇到了问题。最后一行中的console.log始终先运行,而不是所需的功能。是什么原因造成的?



var tabURL;
chrome.tabs.query({
    active: true,
    currentWindow: true
}, function(tabs) {
    tabURL = tabs[0].url;
    console.log(tabURL);
});
console.log("Why does this run first?");




1 个答案:

答案 0 :(得分:0)

那是因为异步执行。当JavaScript等待chrome API时,控制台会继续并记录您的消息。要解决此问题,您可以在回调中添加回调。

var tabURL;
chrome.tabs.query({
    active: true,
   currentWindow: true
}, function(tabs) {
    tabURL = tabs[0].url;
    console.log(tabURL);
    console.log("I execute second!")
});

因此,只要您在回调中使用URL放置代码,它就可以正常工作。