Closed iwege closed 6 years ago
之前用的是php的laravel,由于php的同步机制,使得Laravel的事件机制也是同步的。但是nodejs的数据库处理和http请求都是异步的,使用这种方式处理的话非常繁琐。
简单的搜索了一下nodejs 的hook-emitter可以做类似的事情。但是我看了eggjs的大部分示例,都没有涉及到这块的内容,想问问eggjs的最佳实践是不是并非如此?
hook-emitter
假设需求场景如下:
单体应用,模块之间想通过事件来进行解偶,不考虑异常的情况:
伪代码如下:
// a module app.event.on('user:delete', function(){ // do something }) // b module app.event.on('user:delete',function(){ // do something }) // sms module app.event.on('user:deleted', function(){ // send sms}); // use module await app.event.emit('user:delete',{transaction}) user.delete({transaction}) await app.event.emit('user:deleted', {someInfo});
请不要用事件,事件最大的问题是不好找,提高了维护成本。
明白了,感谢。
之前用的是php的laravel,由于php的同步机制,使得Laravel的事件机制也是同步的。但是nodejs的数据库处理和http请求都是异步的,使用这种方式处理的话非常繁琐。
简单的搜索了一下nodejs 的
hook-emitter
可以做类似的事情。但是我看了eggjs的大部分示例,都没有涉及到这块的内容,想问问eggjs的最佳实践是不是并非如此?假设需求场景如下:
单体应用,模块之间想通过事件来进行解偶,不考虑异常的情况:
伪代码如下: