SteemJiang发布上的小问题
SteemJiang在发布时会出现一个文章时间不同步的问题,如下图所示:
如上所示,虽是同一篇文章,但发布的时间却是相差几秒,在SteemJiang上就会被判断为两篇文章!
这是什么原因造成的呢? 找想了下,发现是文章同步到Steem上时的延时造成的!
SteemJiang上发布文章的机制是:文章先存储在前端数据库,同时同步到Steem上。问题就出在Steem上是要花费大约3秒的时间,因此会造成一篇文章的创建时间不一致!
解决的办法就是做一次去重,以文章的permlink做为唯一的标识即可!
部分代码如下:
//同步文章
//取得最新文章的时间标记
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())
}
6666
Posted using Partiko Android
当你在steemit上发帖或评论获得SP的时候,已经过去4天左右了,为什么这些SP还没有添加到你的钱包里?
steem是七天结算的,也就是说发贴七天后才会得到sp!