【问题标题】:Async operation while processing stream处理流时的异步操作
【发布时间】:2017-05-12 07:26:27
【问题描述】:

我需要一些帮助,

我需要将文件作为流读取,并且在第一个块上我需要创建一个异步操作的数据库表。所以我想做的是创建一个双工/变压器流,它会在我们处理文件的开头时创建表,但在其他方面作为普通流工作。

作为一个伪代码,我认为是这样的

fileLoaderService
  .loadfileAsStream()
  .pipe(parser)
  .pipe(
    if !headerProcessed
      createTable
    passThrough 
  )
  .pipe(insertToTable)

这可能吗?

【问题讨论】:

  • 可以使用控制器的start功能

标签: javascript node.js stream


【解决方案1】:

您可以使用ReadableStream控制器的start函数在pull处理流之前执行任务

let stream = new ReadableStream({
  start(controller) {
     // create table
  },
  pull(controller) {
     // enqueue next chunk
  }
})

【讨论】:

    猜你喜欢
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    相关资源
    最近更新 更多