在函数内赋值后未定义JavaScript变量
上面的代码应该将当前页面的URL分配给变量“currentURL”,但是,函数内部的控制台日志记录正确的值,而函数外部的控制台日志记录“undefined”在函数内赋值后未定义JavaScript变量,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,上面的代码应该将当前页面的URL分配给变量“currentURL”,但是,函数内部的控制台日志记录正确的值,而函数外部的控制台日志记录“undefined” 我不明白为什么“currentURL”的值在函数之外是未定义的,任何帮助都将不胜感激 回调是异步的,这就是为什么不能依赖外部console.log。外部日志发生在仍在事件队列中等待的异步回调之前。外部日志发生后,将处理回调,因此您只能在该回调中成功地记录tabs值 有关详细信息,请参阅本文档:- 回调是异步的,这就是为什么不能依赖外部con
我不明白为什么“currentURL”的值在函数之外是未定义的,任何帮助都将不胜感激 回调是异步的,这就是为什么不能依赖外部console.log。外部日志发生在仍在事件队列中等待的异步回调之前。外部日志发生后,将处理回调,因此您只能在该回调中成功地记录tabs值 有关详细信息,请参阅本文档:-
回调是异步的,这就是为什么不能依赖外部console.log。外部日志发生在仍在事件队列中等待的异步回调之前。外部日志发生后,将处理回调,因此您只能在该回调中成功地记录tabs值 有关详细信息,请参阅本文档:-
chrome.tabs.query()方法是异步的。因此,在运行最后一行时,
currentURL
的值尚未定义
查看async/await函数可以帮助您编写程序代码,以等待回调解析,然后再继续执行。chrome.tabs.query()方法是异步的。因此,在运行最后一行时,
currentURL
的值尚未定义
var currentURL;
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
currentURL = tabs[0].url;
chrome.tabs.remove(tabs[0].id);
console.log(currentURL);
});
console.log(currentURL);
查看async/await函数可以帮助您编写程序代码,以等待回调解析,然后再继续
var currentURL;
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
currentURL = tabs[0].url;
chrome.tabs.remove(tabs[0].id);
console.log(currentURL);
});
console.log(currentURL);
请注意,chrome.tabs.query
中的函数是回调函数。这意味着它将在您在外部编写的控制台日志之后启动。这就是为什么控制台.log中的值仍然未定义的原因
请注意,chrome.tabs.query
中的函数是回调函数。这意味着它将在您在外部编写的控制台日志之后启动。这就是为什么控制台.log中的值仍然未定义的原因非常感谢,我的问题是solvedOf course@RyanDeng!继续编码!非常感谢,我的问题是solvedOf当然@RyanDeng!继续编码!