【问题标题】:How to manually end stream created by Table#createReadStream()?如何手动结束 Table#createReadStream() 创建的流?
【发布时间】:2019-11-17 00:24:43
【问题描述】:

我想在流中处理 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

但是这个过程还没有结束。 所以,我相信有些资源没有关闭。 我应该如何停止流并关闭相关资源?

【问题讨论】:

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


    【解决方案1】:

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

    更新:此问题已得到修复,https://github.com/googleapis/nodejs-bigtable/pull/507。客户端版本 https://github.com/googleapis/nodejs-bigtable/tree/release-v2.0.4 及更高版本包含修复。

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 2016-07-25
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多