所以我面臨的這個問題對我來說似乎很奇怪。似乎無法理解這裏發生了什麼。 我創建一個新的數組。將它作爲參數傳遞給填充它的函數。然後在控制檯上記錄數組。它正確顯示值。但在非常下一行,如果我登錄了數組的長度,它給了我一個0在下一行丟失Javascript數組
} else {
var path = new Array();
fetchPath(arr[index].parentId,path);
console.log(path);
console.log(path.length);
}
這是fetchPath
function fetchPath(id, path) {
chrome.bookmarks.getSubTree(id, function(subtree) {
path.push(subtree[0].title);
if(subtree[0].hasOwnProperty('parentId')) {
fetchPath(subtree[0].parentId,path);
}
});
這是我得到的控制檯上
Array[4]
0:"India"
1:"News"
2:"Bookmarks Bar"
3:""
length:4
>_proto_:Array[0]
0
爲什麼報告的長度爲零?事實上,無論我嘗試做什麼,都會失敗,因爲我已經失去了它。 我已將整個JS文件放在這裏http://jsfiddle.net/1u4zngko/
的[爲什麼是我的變量不變後,我修改一個函數中可能重複? - 異步代碼引用](http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron) – Scimonster 2014-12-06 18:04:42
但我做在呼叫者身邊獲得正確的內容。一旦我能夠記錄內容。然後在下一行我丟失了內容 – 2014-12-06 18:12:24
,所以我再次看到路徑已經填充了長度爲4的內容。一旦完成,爲什麼下一行報告爲零。 – 2014-12-06 18:16:58