Node.js 异步事件监听报错:emit已经返回true,失败怎样进入error处理器 给事件监听器加上async以后,内部的失败变成了Promise拒绝。调用方看见emit返回true,很容易以为任务已经成功,实际上异步部分可能才刚开始。captureRejections能帮忙把这类拒绝送到明确的错误... yunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
Node.js once 的注销时机:回调里再次 emit,为什么不会再执行自己 初始化通知的处理器里,又触发了一次同名事件。如果用on注册并打算在函数末尾off,第二次通知可能在清理之前重新进入函数。把它换成once后,同样的递归emit却找不到这个监听了,区别在于注销发生在哪一步。EventE... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Node.js 移除事件监听:已经 off 了,为什么本轮回调仍然执行 一个事件有两个处理器:第一个发现任务已经取消,于是移除第二个;日志却显示第二个在这一轮仍被调用。这不是删除函数失效,而是“今后不再订阅”和“当前分发立刻停止”具有不同的时间边界。先把同一轮和下一轮分开观察Node.j... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Node.js 连续等待事件:第一个 await 已返回,为什么第二个事件却等不到 一个任务先发 ready,再发 done。消费端顺序写两次 await once,看起来严格遵守事件顺序,却在第二次等待处停住。发布端的日志明明显示 done 已经发射,问题是消费端直到第一个 await 恢复后才注... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Node.js error 事件:监控已经记录了异常,程序为什么仍然会抛错 给事件对象加上监控回调后,日志已经记下错误,程序却仍然抛出异常。原因可能是注册了 errorMonitor,却没有真正的 error 监听器。监控负责观察错误事件,并不代表应用已经接手处理;两者的职责不能靠“日志里看... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读