SteemJiang发布上的小问题

in #steemjiang5 years ago (edited)

steemjiang.jpg

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

steemjiang6.jpg

如上所示,虽是同一篇文章,但发布的时间却是相差几秒,在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())
}
Sort:  

当你在steemit上发帖或评论获得SP的时候,已经过去4天左右了,为什么这些SP还没有添加到你的钱包里?

steem是七天结算的,也就是说发贴七天后才会得到sp!

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63743.08
ETH 2657.15
USDT 1.00
SBD 2.87