返回介绍

server.events.on(criteria, listener)

发布于 2024-02-12 19:53:56 字数 2044 浏览 0 评论 0 收藏 0

注册事件,其中:

  • criteria - 订阅标准必须是以下之一:

    • 事件名称字符串,可以是 built-in server events 中的任何一个,也可以是使用 server.event() 注册的自定义应用程序事件。

    • 带有以下可选键的条件对象(除非另有说明):

      • name - (必要) 事件名称字符串。

      • channels - 一个字符串或字符串数组,指定要订阅的事件通道。 如果事件注册指定了允许的通道列表, channels 数组必须与允许的通道匹配。 如果指定了 channels ,则不包含任何通道指定的事件更新将不包含在订阅中。 默认为没有过滤.

      • clone - 如果是 true ,则传递给 server.event.emit()data 对象在传递给 listener 方法之前被克隆。 默认为事件注册选项 (默认为 false ).

      • count - 一个正整数,表示可以调用 listener 的次数,之后自动删除订阅。 计数 1 与调用 server.events.once() 相同。默认为没有限制

      • filter - 订阅的事件标记(如果存在)可以是以下之一:

        • tag 字符串。

        • tag 字符串数组。

        • 具有以下内容的对象:

          • tags - tag 字符串或字符串数组
          • all - 如果为 true , 必须存在所有 tags 才能使事件更新与订阅匹配。 默认为 false (至少匹配一个 tag).
      • spread - 如果是 true ,并且传递给 server.event.emit()data 对象是一个数组, 调用 listener 方法,每个数组元素作为单独的参数传递。 仅当触发的数据结构已知且可预测时,才应使用此方法。 默认为事件注册选项 (默认为 false ).

      • tags - 如果 truecriteria 对象传递给 server.event.emit() 包含 tags , 标记被映射到一个对象(其中每个标记字符串是键,值是 true ),它被附加到末尾的参数列表中。 默认为事件注册选项 (默认为 false ).

  • listener - 处理程序方法设置为接收事件更新。 函数签名取决于事件参数,以及 spreadtags 选项。

返回值: none.

const Hapi = require('hapi');

async function example() {

  const server = Hapi.server({ port: 80 });
  server.event('test');
  server.events.on('test', (update) => console.log(update));
  await server.events.emit('test', 'hello');
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文