在阅读node-mysql文档时,我看到了粘贴在下面的用法
var query = connection.query('SELECT * FROM posts');
query
.on('error', function(err) {
// Handle error, an 'end' event will be emitted after this as well
})
.on('fields', function(fields) {
// the field packets for the rows to follow
})
.on('result', function(row) {
// Pausing the connnection is useful if your processing involves I/O
connection.pause();
processRow(row, function() {
connection.resume();
});
})
.on('end', function() {
// all rows have been received
});
我想知道他们如何使用这些事件,这些事件可以与名称一起使用
用户名查询 query
例如,当我创建自定义事件时,我首先命名它们,例如 var foo=new events.EventEmitter
在整个页面中,我必须将其用作 foo.on("someEvent")
但在这里,他们以某种方式将用户创建的 var 绑定(bind)为示例代码中的事件名称,用户将 mysql 查询命名为 query
并且事件发射器以某种方式具有相同的名称
第二个问题如何在使用事件时链接事件
.on("event").on("anotherEvent")
这个问题可能听起来很奇怪,但我真的想知道这是如何工作的,它将完全改变我的代码设计
最佳答案
query
只是 Query
实例的变量名称。在 Node mysql 库中。您可以访问对象导出的所有函数。
on
继承自 EventEmitter
在 Node.js 核心中。关键是调用 on
返回“本身”,即 this
:
Returns emitter, so calls can be chained.
这允许您将调用链接到on
关于javascript - node-mysql 文档中的奇怪用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238689/