Skip to content

onAck ​

onAck() 负责使用入站的 AckMessage 结算对应的可靠消息。

ts
NApp.nacp.onAck(
  message,
): void
参数说明
message入站的 AckMessage

行为 ​

查找消息 ​

message.meta.parentId 指向被确认消息的 id。onAck() 使用该 ID 从 ACK 等待表中取出对应消息。

如果 ACK 早于本端 Provider 的接纳 Promise 到达,也会正常确认正在提交的消息;随后到达的本地接纳结果不会重复建立 ACK 等待。

找不到记录时,会报告 has-no-consumer 并结束处理。常见原因是重复 ACK,或对应消息已经被放弃。

结算等待方 ​

找到记录后,onAck() 会以 true 结算该消息的 ACK Promise,并从等待表移除记录。

AckMessage 自身不回复 ACK,也不进入去重表。

发送方向见 ack(),可靠消息的队列行为见生命周期。

Released under the MIT License.