如何序列化 pouchdb 更改处理?

How do I serialize pouchdb changes processing?

似乎在我完成对特定更改文档的处理之前,正在使用另一个更改文档调用我的函数。

如何确保按顺序完成?

我的解决方案是设置一个队列数据结构。

更改处理程序只是创建一个任务对象,其中包含 更改的详细信息和适当的处理器功能,然后将其推送到队列的尾部。处理器函数总是通过检查队列头部是否有另一个排队的任务对象来结束执行。

同样,更改处理程序检查任务对象的队列头部,并将控制权传递给它的处理器函数。

因此,所有更改都按顺序处理,直到队列为空。

所有函数都是 async 并且总是用 await 调用。