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);…}