等待完成流的读取请求

2024-03-31

我在用着pngjs https://github.com/niegowski/node-pngjs读取和写入一些 PNG。我定期收到此错误:

Error: There are some read requests waiting on finished stream
    at ChunkStream._end (/home/mbayazit/qatools/pdiff/node_modules/pngjs/lib/chunkstream.js:107:13)
    at ChunkStream.end (/home/mbayazit/qatools/pdiff/node_modules/pngjs/lib/chunkstream.js:94:14)
    at PNG.end (/home/mbayazit/qatools/pdiff/node_modules/pngjs/lib/png.js:105:18)
    at ReadStream.onend (_stream_readable.js:483:10)
    at ReadStream.g (events.js:175:14)
    at ReadStream.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:910:16
    at process._tickCallback (node.js:415:13)

但它没有给我程序内的行号。

不过,我只处理几个地方的流,它们是:

fs.createReadStream(oldScreen).pipe(new PNG).on('parsed', function() {
    promises[0].resolve(this);
});

fs.createReadStream(newScreen).pipe(new PNG).on('parsed', function() {
    promises[1].resolve(this);
});

And

result.png.pack().pipe(fs.createWriteStream(diffName));

这三个文件名永远不会相同,因此它们不应该读/写到同一个位置。我认为流可能没有从之前失败的运行中正确关闭。有没有办法可以强制所有流很好地关闭?


两个建议:

  1. Use longjohn https://github.com/mattinsler/longjohn,它可能能够在代码中提供行号。 (异常发生在异步块中,因此您的堆栈跟踪不包含您的程序,它仅与 V8 主循环中的刻度处理程序堆栈)。

  2. 问题似乎在于有人试图read来自刚刚“结束”的流(已关闭,或已到达其末尾并且底层发出“结束”信号)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

等待完成流的读取请求 的相关文章

随机推荐

  • 操作无法完成。 (com.facebook.sdk 错误 2。)ios6

    您好 我正在使用 ios 6 进行 facebook 登录 并且我收到此错误作为本机弹出窗口 操作无法完成 com facebook sdk 错误 2 这是我使用的场景 我在模拟器上运行这个 我已通过设置登录 Facebook 应用程序 并
  • .NET 4 中的延迟初始化

    什么是延迟初始化 这是我在谷歌搜索后得到的代码 class MessageClass public string Message get set public MessageClass string message this Message
  • 将 maven-release-plugin 与 git-1.8.5 一起使用

    当使用 git 1 8 5 maven release plugin 使用版本 2 4 2 和 2 3 2 测试 和 mvn 使用版本 3 1 1 和 3 0 5 测试 时 运行mvn release prepare and mvn rel
  • R xts 对象将 xts 对象子集为特定小时内多天的日内数据

    xts 对象中有没有办法执行与下面相同的操作 但对于具有多天日内数据的 xts 对象 下面的工作原理就像一个时钟 但只显示一天的数据 如果我从 22 号到 26 号通过 xts 它就不会 似乎无法一次性完成多天 xts 中的日内数据子集化
  • 在 Spark 中堆叠 ML 算法

    是否有 Spark api 可以在 Spark 中构建堆叠集成 或者应该从头开始构建它们 我在网上没有找到有关此主题的任何资源 正如 AKSW 的评论中所说 在当前的 Apache Spark MLlib 中 Ensemble Models
  • 在打字稿中使用react-redux连接

    我尝试使用 redux 和 react router dom 在 typescript 中构建一个 React 应用程序 当我将 redux 添加到我的应用程序时 我遇到了打字问题 因此 我创建了以下只有一页的最小示例测试页 App jsx
  • 关于比奈公式的一些知识

    为什么比奈公式 O LogN 但不完全是 在时间上比迭代方法 O n 效果更差 static double SQRT5 Math Sqrt 5 static double PHI SQRT5 1 2 public static int Bi
  • 使用nl2br将textarea新行保留到mysql...如何很好地将数据返回到文本框?

    我有一个带有文本区域的表单 其结果被插入到 mysql 数据库中 我使用 nl2br 来保留换行符 但是 因为这会在文本中插入 br 所以当用户去编辑他们在文本区域中输入的内容时 它会显示文本区域中保存在 mysql 中的所有 br 对于不
  • 编写 MVVM 样板代码的更好方法?

    我发现自己最近编写了很多样板 MVVM 代码 并且想知道是否有一种奇特的方法可以绕过编写所有这些代码 我已经使用了ViewModelBase实现的类INotifyPropertyChanged但这并不能解决必须编写所有访问器代码等的问题 也
  • python 中的大 O 表示法

    有谁知道有什么学习大符号的好资源吗 特别是学习如何遍历一些代码并能够看到它会是 O N 2 或 O logN 最好能告诉我为什么这样的代码等于 O N log N def complex numbers N len numbers resu
  • jQuery:在 3 个类之间切换(最初)

    我在这里看过几篇关于 SO 的帖子 但它们在功能和结构上过于具体 而我正在寻找的是更通用的东西 我或任何人都可以在任何地方使用 我所需要的只是有一个按钮 单击该按钮可以在之间循环3类 但如果出现必须循环 4 个 5 个或更多类的情况 则可以
  • 有什么办法可以查看标准输入缓冲区吗?

    我们知道stdin默认情况下是缓冲输入 证明这一点的证据是使用任何 留下数据 的机制stdin 例如scanf int main char c 10 0 scanf 9s c printf s and left is d n c getch
  • CreateProcess 执行 Windows 命令

    我正在尝试使用 CreateProcess 函数执行 dos 命令 LPWSTR cmd LPWSTR QString C windows system32 cmd exe subst DLetter mountPath utf16 STA
  • 如何在 R 中解决简单的优化问题

    我试图使用 R 中的 optim 函数来解决一个简单的问题 但我在如何实现它方面面临一些问题 e tot obs sum Var1 sum Var2 sum Var3 sum Var4 output Var1 Var2 Var3 Var4
  • 如何查看 git repo 的接收历史记录?

    我们有一个 中央 存储库 用于部署到我们的开发服务器 我知道git log将向我显示提交及其提交的日期 时间 但我想查看提交何时被推送到存储库 由存储库接收 有办法做到这一点吗 Git s reflogs https git scm com
  • IOS视图变换修改框架?

    我有一个视图 在其中我正在绘制矩形中进行一些特定的绘图 这些绘图是动态的 并且基于视图的宽度和高度 然后 包含它的视图对其应用旋转变换 然而 这种转换似乎调整了我的视图框架的值 这会影响我在drawRect中的绘图 NSLog 之前 f f
  • Windows XP、Vista 和 7 上安装了哪个版本的 .NET Framework?

    我有一个使用 NET Framework 3 5 的应用程序 我正在为一所大学构建这个应用程序来帮助学生学习 大多数学生通常使用Windows XP SP2 Windows Vista或Windows 7 对不起Mac用户 Mac版本将在大
  • 从代码更新 LinearDoubleKeyFrame KeyTime 值

    我有一些像这样的xaml
  • 集群中的用户(会话)计数

    有没有一种好方法可以获取集群中运行的 Java Web 应用程序的登录用户数 我写了一个简单的HttpSessionListener具有静态字段 但我认为这在集群中不起作用 我可以看到有一个 Spring Security 解决方案 但我在
  • 等待完成流的读取请求

    我在用着pngjs https github com niegowski node pngjs读取和写入一些 PNG 我定期收到此错误 Error There are some read requests waiting on finish