mywei1989 / egg-bus

🐣 用 egg 编写优雅的队列与事件
MIT License
51 stars 8 forks source link

emit 无法传递 error 对象 #28

Closed xdliyushen closed 2 years ago

xdliyushen commented 2 years ago

job1

// ...
async failed(data: any, error: Error) {
    this.app.bus.emit('jobFailed', {
      // 期望在事件中可拿到错误信息
      error,
    });
  }

截屏2022-11-07 下午5 38 34

jobFailed listener

 async run(event: any) {
  // event.data 中的 error 为空对象
}

截屏2022-11-07 下午5 39 29

emit 中的 data 并非不能传递复杂对象,似乎是只对 error 对象做了此限制。可否麻烦改下使其能够正常传递 error 对象?

seekcx commented 2 years ago

这块限制是 bull 做的,不建议传对象,bull 底层应该会有一个序列化的过程(未求证),很可能会导致数据丢失。

xdliyushen commented 2 years ago

这样啊,我的需求是打印log,换个地方打印也可以。