我无法从内部的回调函数访问 nodes [i] chrome.bookmarks.create 。伙计们好吗?我想这是因为关闭。有什么方法可以使它发挥作用吗?
function copyBookmarks(nodes,folderId){
for(i=0;i<nodes.length;i++){
var properties={
parentId:folderId,
index:nodes[i].index,
title:nodes[i].title,
url:nodes[i].url
};
chrome.bookmarks.create(properties,function(newNode){
console.log(nodes[i]);//this doesnt work
});
}
}
答案 0 :(得分:3)
正在访问nodes
就好了,但问题是i
将是循环完成后的值。通常的解决方案是通过自执行函数在每次迭代中复制i
:
for (var i = 0; i < nodes.length; i++) {
// Other code...
// Self executing function to copy i as a local argument
(function (i) {
chrome.bookmarks.create(properties, function (newNode) {
console.log(nodes[i]);
});
})(i);
}