javascript - 承诺 {.forEach 不是函数
问题描述
这个函数,我试图遍历我的目录的内容,但是返回错误。
contents.forEach 不是函数
function getBook(fileName){
return new Promise((resolve,reject)=>{
const bookSql =`select * from book1 where fileName='${fileName}'`
const contentsSql =`select * from contents1 where fileName='${fileName}'order by \`order\``
const book = db.queryOne(bookSql)
const contents = db.querySql(contentsSql)
if(book){
book.cover=Book.genCoverUrl(book)
console.log('contents:',contents);
book.contentsTree=Book.genContentsTree(contents)
}
resolve(book)
})
}
而 genContentsTree 的主要问题就在这里 .forEach
static genContentsTree(contents){
if(contents){
const contentsTree = []
contents.forEach(c => {
c.children = []
if (c.pid === '') {
contentsTree.push(c)
} else {
const parent = contents.find(_ => _.navId === c.pid)
parent.children.push(c)
}
})
return contentsTree
}
}
这是控制台报告的错误和有关内容的输出
contents: Promise { <pending> }
TypeError: contents.forEach is not a function
at Function.genContentsTree (/Users/dujinyang/admin-imooc-node/models/Book.js:362:22)
at /Users/dujinyang/admin-imooc-node/services/book.js:72:32
at new Promise (<anonymous>)
at getBook (/Users/dujinyang/admin-imooc-node/services/book.js:64:8)
at /Users/dujinyang/admin-imooc-node/router/book.js:53:13
at Layer.handle [as handle_request] (/Users/dujinyang/admin-imooc-node/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/dujinyang/admin-imooc-node/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/dujinyang/admin-imooc-node/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/dujinyang/admin-imooc-node/node_modules/express/lib/router/layer.js:95:5)
at /Users/dujinyang/admin-imooc-node/node_modules/express/lib/router/index.js:281:22 {
isBoom: true,
isServer: true,
data: null,
output: {
statusCode: 500,
payload: {
statusCode: 500,
error: 'Internal Server Error',
message: 'An internal server error occurred'
},
headers: {}
},
reformat: [Function],
isDeveloperError: true
}
{
code: -1,
msg: 'contents.forEach is not a function',
error: 500,
errorMsg: 'Internal Server Error'
}
解决方案
推荐阅读
- python - 递归以便在 Python 中找到集合之间的共性
- cmake - 使用 Cmake 安装 LLReve。未知的 BISON_TARGET 错误
- ruby-on-rails - ActiveAdmin 更改默认排序
- python - ipython notebook调试出现bug时,修正值后如何继续运行?
- javascript - 如何将添加的数据从 HTML 表保存到 SQL (PHPMYADMIN)
- java - 无法在 pom.xml 中执行目标 org.owasp:dependency-check-maven
- web-scraping - 谷歌表 IMPORTHTML 函数找不到数据
- python - python有条件地从常量中减去一列
- html - 如何在 React.js 中的 Input 元素上禁用浏览器自动完成功能
- c - 尽管在 make 文件中提供了 -g 标志,Valgrind 没有显示行号