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});
}
});
});
});
基本上我试图在当前窗口中获取所有打开的选项卡,然后创建一个书签文件夹并添加所有选项卡。它以前工作得很好,突然它停止工作。已创建根文件夹书签,但链接未添加到文件夹中。
我知道很多嵌套调用是异步的,但我如何确保所有这些调用都执行。
答案 0 :(得分:0)
在我看来,当你引用它时,bmNode为null。
我会同步创建bmNode,然后去枚举标签。
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});
}
});
});
答案 1 :(得分:0)
这是我忽略的一件小事。我发现我正在调用“location.reload()”函数,这会扰乱整个异步回调结构。我删除了它,它现在开始正常工作。