Skip to content

服务 (Service)

Service 是抽象的服务基类。任何开发者都可以方便地基于 Service 类定义自己的服务。

为了提高灵活性,Service 类提供的所有方法都使用 symbol 作为属性名,以避免与子类的属性名冲突。你可以在 Context 或者 Service 的静态属性中找到这些属性名。

TIP

基于 Service 类定义服务并不是必须的。理论上你可以用任何可代理对象作为服务。

实例属性

service.ctx

访问服务的上下文。

service[Context.filter]

  • 类型: (ctx: Context) => boolean

服务内置了上下文过滤器,以便根据隔离域过滤触发事件的上下文。

实例方法

new Service(ctx, name)

  • ctx: Context 上下文
  • name: string 服务名称

构造服务实例。

service[Service.init](ctx)

定义服务实例的初始化操作。该方法支持异步和迭代器,可用于绕开构造函数的限制。

service[Service.invoke](...args)

  • args: any[] 调用参数
  • 返回值: any

定义将服务视为函数调用时的行为。

WARNING

我们不建议滥用这个功能。在大多数情况下,直接调用服务实例的方法会更加直观。