Skip to content

signal ​

signal() 向一个进行中的 Event 请求发送信号。

js
const call = app.request("worker", {
  kind: "event",
  target: "countdown",
  payload: { from: 100 },
})

// 注入一条业务输入
await app.signal("worker", {
  parentId: call.reqId,
  kind: "normal",
  payload: { refrom: 200 }
})

// ...或者暂停 / 恢复 / 中止
await app.signal("worker", { parentId: call.reqId, kind: "pause" })
await app.signal("worker", { parentId: call.reqId, kind: "resume" })
await app.signal("worker", { parentId: call.reqId, kind: "abort" })

参数 ​

ts
app.signal(to, opt): Promise<boolean>
参数说明
to目标 NApp 的 id
parentId目标 Event request 的 reqId
kind信号类型:"normal" / "pause" / "resume" / "abort"
payload仅 normal 可带,随信号发送的业务载荷

WARNING

Signal 只适用于活跃的 Event 请求。

发送Signal时,parentId 对应的Req若已结束,接受侧会报告错误 processor-rejected,但发送侧的返回仍是 true。

Ability 请求不需要也不会接收 Signal。

返回值 ​

signal() 返回 Promise<boolean>:

  • true:消息送到了对端且对方已接受。
  • false:Signal 无法送达。

更多 ​

协议层的信封结构、接收方处理流程与去重语义,见 NACP signal。

Released under the MIT License.