function getNode(subjectId, nodeId){
request(`http://hr.amiaodaifu.com:50000/1610/questions/${subjectId}/get-children/${nodeId}`, (err, res, body) => {
console.log(body)
if(err){
return console.log("err: ",err)
} else {
const content = JSON.parse(body);
console.log(content)
return content.length == 0 ? Promise.resolve(content) : Promise.resolve({
id: nodeId,
children: JSON.parse(body)
})
}
})
}
function getTree(subjectId, nodeId){
getNode(subjectId, nodeId)
.then(items => {
return Promise.map(items.children, item => (getTree(item)))
})
// .then((children) => ({
// id: nodeId,
// children
// }))
}
调用getTree的时候,提示的错误是:
Cannot read property 'then' of undefined
是我的思路有问题吗?
First of all, the return value of
request
is notPromise
.Secondly, your
getNode
method does not return the result ofrequest
.You can change it like this:
Correct answer upstairs, promise is used in the wrong place
return Promise.map(items.children, item => (getTree(item)))
Is there a Promise.map function? How to use it?