使用ChromeAPI在javascript中调用嵌套回调函数 chrome.bookmarks.create({parentId:nodeId,title:title},函数(bmNode){ chrome.windows.getCurrent(函数(窗口){ chrome.tabs.getAllInWindow(window.id,函数(tabs)){ 对于(var i=0;i

使用ChromeAPI在javascript中调用嵌套回调函数 chrome.bookmarks.create({parentId:nodeId,title:title},函数(bmNode){ chrome.windows.getCurrent(函数(窗口){ chrome.tabs.getAllInWindow(window.id,函数(tabs)){ 对于(var i=0;i,javascript,function,asynchronous,google-chrome-extension,Javascript,Function,Asynchronous,Google Chrome Extension,,在我看来,当您引用它时,bmNode是空的 我将同步创建bmNode,然后开始枚举选项卡 chrome.bookmarks.create({parentId: nodeId, title: title},function(bmNode) { chrome.windows.getCurrent(function(window) { chrome.tabs.getAllInWindow(window.id, function(tabs) { for(var i=0;

,在我看来,当您引用它时,bmNode是空的

我将同步创建bmNode,然后开始枚举选项卡

chrome.bookmarks.create({parentId: nodeId, title: title},function(bmNode) {
  chrome.windows.getCurrent(function(window) {
     chrome.tabs.getAllInWindow(window.id, function(tabs) {
        for(var i=0; i<tabs.length; i++) {
           chrome.bookmarks.create({parentId: bmNode.id, title:tabs[i].title,
                                   url:tabs[i].url});
        }
     });
   });
});
var bmNode=chrome.bookmarks.create({parentId:nodeId,title:title})
chrome.windows.getCurrent(函数(窗口){
chrome.tabs.getAllInWindow(window.id,函数(tabs)){

对于(var i=0;i这是我忽略的一件小事。我发现我调用的是“location.reload()”函数,该函数破坏了整个异步回调结构。我删除了该函数,现在它开始正常工作。

开发人员工具检查器是否在扩展页中显示任何错误?遗憾的是,没有,我没有收到任何错误。它以前一直工作,但后来开始自行运行。缺少的右括号是故意的吗?(您从不关闭
chrome.bookmarks.create
chrome.windows.getCurrent
chrome.tabs.getAllInWindow
调用的左括号)哦,很抱歉,我正在尝试格式化代码,但我忘了放大括号。我将编辑代码。请尝试console.log创建事件。也许您会看到问题?
var bmNode = chrome.bookmarks.create({parentId: nodeId, title: title} )

  chrome.windows.getCurrent(function(window) {
     chrome.tabs.getAllInWindow(window.id, function(tabs) {
        for(var i=0; i<tabs.length; i++) {
           chrome.bookmarks.create({parentId: bmNode.id, title:tabs[i].title,
                                   url:tabs[i].url});
        }
     });
   });