代码之家  ›  专栏  ›  技术社区  ›  Steve Bennett

提供可写流以从中提取字符串

  •  0
  • Steve Bennett  · 技术社区  · 3 年前

    在Node中,我调用一个库函数,该函数接受一个流,它将向该流写入文件的内容 WritableStream 将文件写入磁盘,但实际上我只想将内容作为字符串。

    有没有一种简单的方法可以实现这一点,最好没有额外的依赖性?也就是说,沿着这些路线:

    function getImageContents() {
      const stream = new SomeKindOfStream();
      makeImage(stream);
      return stream.toString();
    }
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Steve Bennett    3 年前

    好的,这很有效:

    async function getImageContents() {
      return new Promise((resolve, reject) => {
        const stream = new Writable()
        let s = '';
        stream._write = (chunk, enc, next) => {
          s += chunk.toString()
          next()
        }
        stream.on('finish', () => {
          resolve(s)
        })
        stream.on('error', (e) => {
          reject(e)
        })
    
        makeImage(stream)
      })
    }