【发布时间】:2018-09-18 17:04:41
【问题描述】:
so - 我们大量使用 sqlite3,通常我使用 all 来选择 - 但我们有一个情况,我们有一个大数据集(数千万行),我想处理它行逐行...并遇到了似乎无法克服的问题。
如果我这样做
console.log("before");
database.each( "select * from blah",
(error, row) => {console.log("during");output.write(row.something);} );
console.log("after");
我看到“之前”、“之后”、“期间”这些词。现在这个问题 - 我需要关闭流 - 在最后一条记录出来之后。似乎没有办法确定这一点,或者在发生这种情况时得到回调。
我错过了什么吗?几乎每次有人迭代基本上是光标的东西时,他们都需要一种方法来知道他们何时完成 - 据我所知 - 当前的 javascript 实现完全不可能,这使得 .每个基本上都无法使用。
请告诉我我错了吗?
【问题讨论】:
-
ps - 我知道我可以事先查询计数,但是这会带来严重的隐含竞争条件,以及性能成本。
-
看来你也可以通过completion callback作为最后一个参数
-
耶! Thx 会尝试
标签: javascript node.js sqlite