发送错误被丢弃,调用方无法判断邀请是否送达
原文依据:3 处邮件组件明确返回 #ok 或带错误文本的 #err,但 sendEventInvitation 使用 ignore 丢弃结果,并以 async () 返回。
权限或投递失败时,上层应用仍可能把调用视为成功。用户可能基于并未发出的邀请作出安排,而且错误信息不会用于告警或重试。
邮件接口明确可能返回带错误文本的 `#err`,但示例发送函数使用 `ignore await` 丢弃结果,并以 `async ()` 返回。若邮件服务拒绝或发送失败,调用方无法从此函数获知失败,管理员可能误以为邀请已送达,进而作出错误的会议安排决定。用户可要求作者检查并返回发送结果、记录失败并提供重试或失败通知。
public type SendResult = { #ok; #err : Text; }; public func sendCalendarEvent(fromUsername : Text, event : CalendarEvent) : async SendResult;};查看另外 2 个位置
ignore await EmailClient.sendCalendarEvent( "no-reply", event ); }; public shared ({ caller }) func sendEventInvitation(uid : Text) : async () { if (not (AccessControl.hasPermission(accessControlState, caller, #admin))) {