2014-10-30 73 views
0

我正在使用Chrome的本地存儲瀏覽器擴展。當試圖存儲一個對象,我隨機有時「無法讀取屬性‘名’的未定義」得到一個錯誤,在這裏我呼籲chrome.storage.local.set(行)打破像這樣:Chrome擴展程序storage.local.set「無法讀取未定義的屬性」名稱「

chrome.storage.local.set({"channels":ContentApp.channels}, function(data){ 
    console.log(data) 
}); 

第一次存儲對象時,錯誤從未發生過,只有在初始存儲之後。任何人都知道這是什麼原因?我沒有看到在該行或堆棧跟蹤中的任何函數中訪問的屬性「名稱」,所以我不知道'name'屬性來自哪裏。

+0

如果您在斷點處檢查ContentApp.channels是否相等,該如何處理? – jmort253 2014-10-30 03:47:20

+0

另外,如果您嘗試多次從控制檯本身運行命令,會發生什麼情況? – jmort253 2014-10-30 03:48:33

+0

ContentApp.channels是一個具有一堆屬性的對象,我可以在調試器中檢查它,它很好。如果我在控制檯中多次發送垃圾郵件命令,它不會拋出任何錯誤 – ejfrancis 2014-10-30 05:16:59

回答

1

解決方案很簡單,但我發佈它,所以任何面臨同樣困惑的人都會看到這一點。

誤差在的

chrome.storage.local.set() 

行被拋出,但實際上它是一個正被調用的回調中的方法內部發生的。錯誤的調用堆棧不會從.set()的回調中冒出來,因此它會在.set()調用的行中報告。

相關問題