如何手动结束由Table#createReadStream()创建的流?

时间:2019-07-07 01:34:45

标签: node.js streaming bigtable google-cloud-bigtable

我想在流中处理BigTable表中的数据,但要尽早结束流。 我正在将这段代码用于Node.js(稍作修改的https://github.com/googleapis/nodejs-bigtable/blob/master/samples/document-snippets/table.js#L215):

const stream = new BigTable({projectId, keyFilename})
  .instance(instanceId)
  .table(tableName)
  .createReadStream();
stream.on('data', () => {
  stream.end();
});
stream.on('end', () => {
  console.log('end');
  stream.destroy();
});
stream.on('close', () => {
  console.log('close');
});

输出为:

end
close

但是该过程尚未完成。 因此,我认为某些资源没有关闭。 我应该如何停止播放并关闭相关资源?

1 个答案:

答案 0 :(得分:2)

这似乎是客户端库中的错误。我将您的问题重新发布为github问题: https://github.com/googleapis/nodejs-bigtable/issues/506