gpt4 book ai didi

couchdb - Pouchdb - 如何显示同步进度状态?

转载 作者:行者123 更新时间:2023-12-04 12:49:40 24 4
gpt4 key购买 nike

首先,我是 pouchdb 的新手。我想做的是向用户显示同步进度状态。我有 localdb 和 remotedb。目前我只能显示已经通过控制台同步的项目。但问题是,我需要显示给用户。例如,如果 remotedb 中的数据是 1000,我想显示 4/1000 之类的同步状态进度,并且会增加到 1000/1000。下面是我的代码。

//declaration counter    
let counter:number = 0;

this.db = new PouchDB('users'); //localdb

this.remote = http://localhost:5984/users; //remotedb

let options = {
live: true,
retry: true,
continuous: true
};

this.db.sync(this.remote, options)
.on('change', function(change){
counter++; //to count how many data is sync
console.log('Data sync', counter);
console.log('Users provider change!', change);
})
.on('paused', function(info){
console.log('Users provider paused!', info);
})
.on('active', function(info){
console.log('Users provider active!', info);
})
.on('error', function(err){
console.log('users provider error!', err)
});

抱歉我的英语不好。

最佳答案

使用 CouchDB,您可以简单地使用事件任务 endpoint .

对于 CouchDB,您将需要使用复制的 db.info() 和 onChange 事件。

首先,正如我评论的那样,删除复制中的连续选项。否则,您的复制将是无限的。在您的情况下,您需要单次复制。

要计算进度,您需要计算 onChange 响应中的序列数。将该序列数除以远程数据库的序列数,您的进度应该非常准确。

看看这个example ,它可能会帮助您找到一种计算进度的方法。

关于couchdb - Pouchdb - 如何显示同步进度状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40857758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com