javascript - node-mysql 文档中的奇怪用法

标签 javascript node.js bind chain

在阅读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/

相关文章:

javascript - jquery 1分钟后发送 $POST 到服务器

javascript - AngularJS:更改指令属性

node.js - putObject 使 Nodejs 中的服务器上的对象变大

node.js - 如何从azure容器获取文件夹列表?

c++ - 如何确定 bind() 是否需要参数中的括号

jquery - 如何将事件绑定(bind)到 Internet Explorer 中的清除 x 按钮图标(见图)

JavaScript 名称冲突?

javascript - 我正在尝试使用 JavaScript 来验证电话号码

node.js - 使用和不使用 shell 运行进程有什么区别?

javascript - 将多个 'id' 绑定(bind)到单击正文标签并根据单击的按钮执行操作?