我正在制作一个Chrome扩展程序,它大量使用获取当前活动窗口中当前活动选项卡的ID。使用chrome.tabs.query缠绕一堆逻辑使我的代码变得混乱,但是将它放在它自己的函数中以返回当前选项卡总是返回undefined - 为什么?
function _getCurrentTab(){
var theTab;
chrome.tabs.query({active:true, currentWindow:true},function(tab){
theTab = tab;
});
return theTab;
};
console.log(_getCurrentTab());
任何人都可以帮忙吗?
答案 0 :(得分:3)
chrome.tabs.query
是异步的,因此您的返回在回调中的theTab = tab
之前执行或者执行回调本身,所以请尝试:
function _getCurrentTab(callback){ //Take a callback
var theTab;
chrome.tabs.query({active:true, currentWindow:true},function(tab){
callback(tab); //call the callback with argument
});
};
_displayTab(tab){ //define your callback function
console.log(tab);
};
_getCurrentTab(_displayTab); //invoke the function with the callback function reference