递归获取所有评论(SteemJS) / 网络研习社#48

递归获取所有评论(SteemJS) / 网络研习社#48

node.jpg

如上图所示,文章的评论和以上的节点非常类似,也是由一个节点分支出去的多分支结构。以前看评论还挺简单,轮到自己来做,才发现到处都是事!

查询函数

1
2
3
steem.api.getContentReplies(author, permlink, function(err, result) {
console.log(err, result)
})

查询函数倒是简单,但是又是只能查询到第一层,也就是只有对文章的评论可以查到,对评论的评论就没招了。只能想办法解决了。

评论的这种分叉形的结构只能由递归来处理,唉,提到递归又是一阵蒙圈!实在没怎么用过,硬着头皮也要用起来啊。

递归查询评论

1
2
3
4
5
6
7
8
9
10
11
12
13
function getReplies(author, permlink){
_this.steem.api.getContentReplies(author, permlink, function(err, result) {
_this.replies = _this.replies.concat(result)
result.forEach(item=> {
if(item.children > 0){
let author = item.author
let permlink = item.permlink
getReplies(author, permlink)
}
})
})

}

折腾半天,也有点效果,不过只能递归出所有评论填进一个数组内,原有的结构没有了!那怎么显示呢?

显示也是个事! 所有评论在一个数组内,这咋整呢,要对所有的数据遍历查询?!先用苯办法试下。

1
2
3
4
5
6
7
8
9
<div v-for="item in firstReply()">
{{item.author}}--{{ item.body}}<br>
<div v-for="sec in secondReply(item.permlink)" class="second">
{{ sec.author }}--{{ sec.body }}<br>
<div v-for="third in thirdReply(sec.permlink)" class="third">
{{ third.author }}--{{ third.body }}<br>
</div>
</div>
</div>

唉,我真的有点头晕啊,这要做多少层的循环啊?!勉强做个三层就快到头了,估计还是得换方法。

等伙再到网上查查资料。嗯,等村长过来指导工作也不错!


This page is synchronized from the post: ‘递归获取所有评论(SteemJS) / 网络研习社#48’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×