以事件驱动的方式编写异步代码
Writing Async code in event driven way
我在node.js
中编程,有时异步函数变得非常脏。我想写异步代码,但检索数据作为一个事件发生,我知道的承诺,但它不是我想要的只是我问的是这样的东西
asyncFunc(error,dt,ld){
//some async code such as db operations
}
那么我想以事件方式获取数据
asyncFunc.on("dt",function(dt){do something});
asyncFunc.on("error",function(err){i have an error object});
asyncFunc.on("ld",function(ls){loading});
我知道promise和一些第三方库都是反对回调的但我的问题是,我写代码的时候要怎么设计呢
使用nodejs事件
var asyncFunc = function(error,dt,ld){
var events = require('events');
var eventEmitter = new events.EventEmitter();
//emit error
eventEmitter.emit('error', new Error('some error'));
//emit dt
eventEmitter.emit('dt', 'some data for dt');
//emit dld
eventEmitter.emit('ld', {message: 'some details for ld', ld: ld});
return eventEmitter;
}
//then
asyncFunc.on("dt",function(dt){/*do something*/});
asyncFunc.on("error",function(err){/*i have an error object*/});
asyncFunc.on("ld",function(ls){/*loading*/});
这篇文章很棒
官方nodejs事件文档
相关文章:
- 如何从一系列级联异步代码中返回值
- 要按顺序执行的异步代码
- 谷歌分析-升级到异步代码
- 如何在node.js和MongoDb中混合javascript中的同步和异步代码
- 使用异步代码引发/捕获错误的替代方法
- 使我的异步代码与setTimeout同步.我需要承诺吗
- Node.js:异步代码 + js 闭包的问题
- 用外行的术语理解异步代码
- 以编程方式将同步代码转换为异步代码
- 在javascript中使用原型设计是否会对ajax调用和异步代码产生负面影响
- 如何在 app.run 中使用异步代码
- 执行异步代码时;退出“;事件
- 使用mocha为异步代码构建测试(请求)
- 这是在node.js中编写异步代码的正确方法吗
- durandal激活函数异步代码
- 链接多个.然后,一些没有异步代码的函数.最佳实践
- 自定义ESLint规则中的异步代码
- 节点js中可读的异步代码流
- 如何使用生成器在内部循环带有try-catch块的异步代码
- 在异步代码块中处理的多个ajax延迟调用的数组,后面是同步的最终代码块