Skip to content

response ​

response() 向一次request/(un)subscribe/(un)register返回一次响应。

WARNING

一般业务不需要调用 response()。绑定的 Processor 会接收 Request,NACP也会自己处理Subscribe和Register事件,并自动发送最终响应。

该接口主要用于自定义 Processor、协议桥接或其他低层集成。

使用 ​

ts
app.response(to, {
  parentId,
  isOk,
  whyNotOk?,
  kind?,
  decl?,
  payload?,
})

手动响应需要保留原 Request 的 from 和 id:

js
const delivered = await app.response(request.from, {
  parentId: request.id,
  isOk: true,
  kind: request.meta.kind,
  payload: { result: 42 },
})
参数说明
to原 Request 的发送方,即 request.from
parentId原 Request 的 id
isOk请求是否成功
whyNotOk失败原因,通常仅在 isOk: false 时提供
kind原请求类型:"ability" 或 "event"
decl随响应返回的 NApp 声明,通常不使用
payload返回给请求方的业务载荷

失败响应示例:

js
await app.response(request.from, {
  parentId: request.id,
  isOk: false,
  kind: request.meta.kind,
  whyNotOk: "invalid-input",
  payload: { message: "a 和 b 必须是数字" },
})

返回值 ​

response() 返回 Promise<boolean>:

  • true:响应已被目标确认。
  • false:响应无法送达,例如没有可用路由。

true 只表示消息送达,不表示请求方已消费 payload。

Released under the MIT License.