代碼:
window.reddit.comments("uq0mzi").sort('hot').fetch(function(res) {
res[1].data.children.flatMap((item) => {
console.log(item.data.body)
item.data.replies.data.children.map(y => (y.data.body === undefined ? "" : console.log(" >>>" y.data.body)))
})})
我正在嘗試什么:我正在使用 reddit API 包裝器來獲取評論和他們對帖子的回復。第一張地圖列印出頂級評論,而第二張地圖應該列印出對這些評論的回復
哪里出錯了:代碼有效,但在列印完所有內容后,我收到一個型別錯誤:
未捕獲的型別錯誤:無法讀取未定義的屬性(讀取“孩子”)
我如何解決它?
uj5u.com熱心網友回復:
我最喜歡的解決方案是使用 getSafe 函式來避免undefined錯誤。
如果該值未定義,則將回傳默認值而不是undefined
const getSafe = (fn, defaultVal) => {
try {
if (fn() === undefined || fn() === null) {
return defaultVal
} else {
return fn();
}
} catch (e) {
return defaultVal;
}
}
window.reddit.comments("uq0mzi").sort('hot').fetch(function(res) {
res[1].data.children.flatMap((item) => {
console.log(item.data.body)
getSafe(()=>item.data.replies.data.children, []).map(y => (y.data.body === undefined ? "" : console.log(" >>>" y.data.body)))
})})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475709.html
標籤:javascript
