Javascript 从回调函数中获取参数
我有一个函数如下所示:Javascript 从回调函数中获取参数,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个函数如下所示: main.add = function(){ var newTabId; chrome.tabs.create({"url":"enter.html","active":true}, function(tab) { newTabId = tab.id; } ); console.log(newTabId); } 但是当打印newTabId以控制台时,chrome.tabs.creat
main.add = function(){
var newTabId;
chrome.tabs.create({"url":"enter.html","active":true},
function(tab) {
newTabId = tab.id;
}
);
console.log(newTabId);
}
但是当打印newTabId
以控制台时,chrome.tabs.create函数尚未运行,因此var是未定义的
有没有办法确保chrome命名空间中的代码在运行其下的任何内容之前完成?首先,执行newTabId global,在函数外部定义它。您的两个“newTabId”属于不同的名称空间 其次,chrome.tabs.create中的函数将在主代码完成后启动。这是异步编程。ChromeAPI都是异步的,所以,习惯它吧,很遗憾,没有解决办法
如果您想开始异步思考,我建议使用jQuery。将代码直接放在回调函数中<代码>函数(tab){newTabId=tab.id;console.log(newTabId);…}