在NodeJS Cassandra代码中,在处理来自client.stream()
或client.eachRow()
的每一行的回调时,停止迭代的正确方法是什么?如何告诉客户端对象我不再对结果感兴趣。甚至可能值得提出一个“错误”。或者'完成'事件
此外,如果在以异步方式处理行时代码使用相同的客户端对象启动另一个查询,那么nodejs-driver是否会出现任何问题?
答案 0 :(得分:3)
使用client.stream
您正在使用stream.Readable,因此您可以在流上调用pause()但是,驱动程序将继续解析和缓冲数据并随时拉入新页面(假设已启用自动播放)。
使用client.stream
和client.eachRow
时,您可以提供autoPage选项,以确定驱动程序在到达页面末尾时是否保持分页。如果您担心从大型结果集中读取过多数据,则可以使用上一个查询的pageState进行下一个查询(例如here)。不幸的是,这不适用于client.stream
(NODEJS-145)。
此外,如果在以异步方式处理行时代码使用相同的客户端对象启动另一个查询,那么nodejs-driver是否会出现任何问题?
这不会是一个问题:)