NACAB
NACAB全称Nyirusu Application Control Ability Bus,是NASDK内建的Ability处理器。
它用于一次调用、一次返回的独立能力:按名称查找AbilityHandler,执行后直接返回结果。
text
invoke(name, input)
→ AbilityHandler.execute()
→ result或errorNACAB没有Pipeline、队列、刻、资源调度、Hook或Veto。每次调用都会创建独立的AbilityInstance,不同调用可以并发执行。
构成
text
NACAB
├── AbilityHandler注册表
├── AbilityInstance
├── EventBus
└── NACPAdaptor| 部分 | 作用 |
|---|---|
| AbilityHandler | 定义Ability名称、描述与执行逻辑 |
| AbilityInstance | 保存单次调用的输入、状态与结果 |
| EventBus | 观测执行状态和错误 |
| NACPAdaptor | 实现AbilityProcessor接口 |
使用
ts
import { NACAB, AbilityHandler } from '@nyirusu/nasdk/NACAB'
class Add extends AbilityHandler<number> {
readonly name = 'math.add'
readonly description = '两数相加'
async execute() {
const { a, b } = this.input as { a: number; b: number }
return a + b
}
}
const nacab = new NACAB({ handlers: [new Add()] })
const result = await nacab.invoke('math.add', { a: 1, b: 2 })Ability的定义方式见注册Ability,执行过程和可观测Event见调用与观测。
TIP
NACAB可以脱离NApp独立使用。接入NACP时绑定nacab.nacpAdaptor,详见AbilityProcessor。

