gpt4 book ai didi

javascript - javascript 中的求值顺序

转载 作者:行者123 更新时间:2023-11-28 21:21:33 24 4
gpt4 key购买 nike

我对 javascript 中的求值顺序感到困惑。例如,这是我编写的代码

this.getTabUrl=function()
{
this.logToConsole("1"+"getTabUrl is called");

var myUrl
chrome.tabs.getSelected(null, function(tab)
{
myUrl = tab.url;
console.log("2"+tab.url);
console.log("3"+myUrl);
//this.parent.logToConsole(tabUrl);

});

this.tabUrl=myUrl;

this.logToConsole("3.1"+myUrl);
this.logToConsole("4"+this.tabUrl);

return myUrl;

}

当我调用这个函数时,这是我得到的输出

> 1getTabUrl is called
> 3.1undefined
> 4undefined
> 2undefined

为什么先评估 3.1 和 4,然后再评估 2。

最佳答案

传递给 chrome.tabs.getSelected() 的函数是异步执行的。

您需要将需要传递给回调的所有内容放入回调函数内。请注意,这意味着您无法从依赖于回调中某些内容的外部函数返回值。您需要接受回调参数并使用返回值调用它。

关于javascript - javascript 中的求值顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com