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});
}
});
});
});
基本上,我试图获取当前窗口中所有打开的选项卡,然后创建一个书签文件夹并将所有选项卡添加到其中。以前一直好好的,突然就不行了。根文件夹书签已创建,但链接未添加到该文件夹。
我知道它有很多异步的嵌套调用,但我如何确保它们全部执行。
最佳答案
在我看来,当您引用 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});
}
});
});
关于javascript - 使用 chrome api 在 javascript 中调用嵌套回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577820/