SteemJiang发布上的小问题

SteemJiang发布上的小问题

steemjiang.jpg

SteemJiang在发布时会出现一个文章时间不同步的问题,如下图所示:

steemjiang6.jpg

如上所示,虽是同一篇文章,但发布的时间却是相差几秒,在SteemJiang上就会被判断为两篇文章!

这是什么原因造成的呢? 找想了下,发现是文章同步到Steem上时的延时造成的!

SteemJiang上发布文章的机制是:文章先存储在前端数据库,同时同步到Steem上。问题就出在Steem上是要花费大约3秒的时间,因此会造成一篇文章的创建时间不一致!

解决的办法就是做一次去重,以文章的permlink做为唯一的标识即可!

部分代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//同步文章
//取得最新文章的时间标记
let latestPostFlag = posts[0].created

let permlinkList = []
posts.forEach(item => {
permlinkList.push(item.permlink)
})

//从steem上获取最新文章
let author = _this.$store.state.username
let beforeDate = new Date().toISOString().split('.')[0]
let newposts = []
let startPermlink = null
while(true){
let result = await _this.steem.api.getDiscussionsByAuthorBeforeDateAsync(author, startPermlink, beforeDate, 10)
// console.log(655,result)
if (latestPostFlag < result[0].created && permlinkList.indexOf(result[0].permlink) === -1 ) {
//有新文章并且不是重复的文章
result.forEach(post => {
if (post.permlink !== startPermlink && permlinkList.indexOf(post.permlink) === -1 ) {
newposts.push(post)
}
})
//取到最后一篇文章的Permlink,做为下一次查询的起始点
startPermlink = result[result.length - 1].permlink
//如果最后一篇文章也是新文章则继续,否则终止while
if(latestPostFlag > result[result.length - 1].created){
console.log(233, '没有更新的文章')
break
}
}else{
// console.log(133, '没有新文章')
break
}
}
if(newposts.length > 0){
await _this.savePosts(db, newposts)
console.log(544, '添加新文章成功!')
let posts2 = await _this.getAllPosts(db)
_this.$store.commit('savePosts', posts2.reverse())
}


This page is synchronized from the post: ‘SteemJiang发布上的小问题’

Your browser is out-of-date!

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

×