gpt4 book ai didi

rethinkdb - 如何取消订阅或更改 rethinkdb 中的更改源?

转载 作者:行者123 更新时间:2023-12-02 01:32:53 28 4
gpt4 key购买 nike

有没有办法在 rethinkdb 中取消订阅或更改现有的 changefeed 观察者?将 changes() 函数的返回值设置为 null 似乎没有任何作用,是否有 unsubscribe() 函数?

理想情况下,我想做的是在创建 changefeed 后更改索引过滤器参数之一(收藏夹)(因为连接上的 changefeed 不起作用,如果基础收藏夹集合发生变化,我必须更改提要)。

这是javascript中的示例代码

  var observer = r.table("users")
.getAll(r.args(favorites), {index:"name"})
.changes().then(function(results) {


results.each(function(err,row) {
if (err) console.error(err);
var prefix = row.new_val ? 'added' : 'deleted';
var msg = row.new_val ? row.new_val : row.old_val;
console.log(prefix + ': ' + msg.name);
});

});

observer = null; //what do I do there to have it stop observing or unsubscribe... or change the subscription to something else.. say adding a filter or changing a filter?

最佳答案

不知道您为 JS 使用什么库。使用 rethinkdb + rethinkdb-pool 您可以使用以下语法:

r.table("users").getAll(r.args(favorites), {index:"name"})
.changes().run(connection, function(err, cursor) {


cursor.each(function(err,row) {
if (err) console.error(err);
var prefix = row.new_val ? 'added' : 'deleted';
var msg = row.new_val ? row.new_val : row.old_val;
console.log(prefix + ': ' + msg.name);
});
}

所以在那之后你就可以 close cursor停止接收更改:
cursor.close();

或者您可以 close connection ,它将自动关闭与连接关联的所有游标:
connection.close();

关于rethinkdb - 如何取消订阅或更改 rethinkdb 中的更改源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33129824/

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