代码之家  ›  专栏  ›  技术社区  ›  Witek

如何将Clojure数据作为EDN写入Node.js输出流?

  •  0
  • Witek  · 技术社区  · 3 年前

    我有一张很大的clojure地图 data 和 output-stream 从文件创建。

    (let [data {:very "large"}
          output-stream (-> ^js file .createWriteStream))]
    

    我目前的解决方案是使用 pr-str ,创建 Readable 并将其输送到输出流。

    (ns user
      (:require ["stream" :as stream]))
    
    (let [s (pr-str data)
          Readable (-> stream .-Readable)
          readable (-> Readable (.from s)]
      (-> readable (.pipe output-stream (clj->js {:end false})))
      (-> readable (.on "end" (fn []
                                (resolve output-stream)))))
    

    有更好的解决方案吗?也许不创建字符串和Readable?

    0 回复  |  直到 3 年前