我有和NodeJS用Express编写的应用程序,我试图使用EventEmitter创建一种插件架构,插件通过监听发出的事件挂钩到主代码中.
我的问题来自插件函数发出异步请求(在这种情况下从mongo获取数据)这导致插件代码完成并将控制权返回到原始发射器,然后在插件代码中的异步请求之前完成执行饰面.
例如:
主要应用:
// We want to modify the request object in the plugin self.emit('plugin-listener',request);
插入:
// Plugin function listening to 'plugin-listener','request' is an arg console.log(request); // Call to DB (async) this.getFromMongo(some_data,function(response){ // this may not get called until the plugin function has finished! }
我从“getFromMongo”函数回避主代码的回调函数的原因是可能有0个或多个插件监听事件.理想情况下,在将控制权返回给主应用程序之前,我想要某种方式等待数据库内容完成
非常感谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。