我有一个CouchDB,我通过CouchBaseLite 1.4连接。在继续申请之前,我无法等待取出所有文件。
目前我正以非常苛刻的方式实现这一目标,并且我希望根据正确的编码标准来解决这个问题。
电流:
pull.setContinuous(false);
pull.start();
//Waits for pull replication to start pulling in data
while(!pull.isRunning());
//Waits for pull replication to finish.
while(!pull.getStatus().equals(Replication.ReplicationStatus.REPLICATION_STOPPED));
//Set continuous to true
pull.setContinuous(true);
//Start it again.
pull.start();
我这样做的原因是我可能在数据库中有2个文档需要等待,如果它们不存在则桌面应用程序进入设置模式。
while
?_id
。有没有办法等到两个人都被拉下来才能继续?答案 0 :(得分:1)
使用更改侦听器。要监控复制,您需要类似
的内容export class RecentSalesComponent implements OnInit {
private gridView: GridDataResult;
private data: Object[];
private pageSize: number = 10;
private skip: number = 0;
private items: any[];
status;
statuses = [];
outlet = '';
selected;
selectedData;
ngOnInit() {
console.log(this.userId);
this.http.post(this.host, {
'datefrom': '2017-05-27',
'dateto': '',
'userId': this.userId
})
.map(res => res.json())
.subscribe(data => {
this.items = data;
this.loadItems();
}, error => {
console.log(error);
});
this.statuses = [{
id: 1,
value: 'Successful',
},
{
id: 2,
value: 'Voided',
}
];
}
constructor(private http: Http) {
this.selectedData = this.items;
console.log(this.selectedData);
}
protected pageChange(event: PageChangeEvent): void {
this.skip = event.skip;
this.loadItems();
}
private loadItems(): void {
this.gridView = {
data: this.items.slice(this.skip, this.skip + this.pageSize),
total: this.items.length
};
}
onSelectOutlet(val) {
console.log(val);
this.selectedData = this.items.filter(x => x.customerName == val);
}
onSelectStatus(val) {
this.selectedData = this.items.filter(x => x.status == val);
this.gridView = {
data: this.selectedData.slice(this.skip, this.skip + this.pageSize),
total: this.selectedData.length
};
}
}
您可以使用数据库对象上的更改侦听器执行类似操作,以便在复制两个特定文档时捕获。
由于听起来您希望这些文档在初始设置之后在其他地方进入数据库,另一种方法是进行一次性复制以获取这些第一个文档,然后在它之后开始连续复制已经结束了。