




















@@ -516,6 +516,27 @@ export async function dispatchPreparedSlackMessage(prepared: PreparedSlackMessag
516516});
517517};
518518519+const deliverBufferedStreamFallback = async (params: {
520+session: SlackStreamSession;
521+err: SlackStreamNotDeliveredError;
522+payload: ReplyPayload;
523+kind: ReplyDispatchKind;
524+textOverride: string;
525+}): Promise<boolean> => {
526+const delivered = await deliverPendingStreamFallback(params.session, params.err);
527+if (!delivered) {
528+return false;
529+}
530+replyPlan.markSent();
531+deliveryTracker.markDelivered({
532+kind: params.kind,
533+payload: params.payload,
534+threadTs: params.session.threadTs,
535+textOverride: params.textOverride,
536+});
537+return true;
538+};
539+519540const deliverWithStreaming = async (params: {
520541payload: ReplyPayload;
521542kind: ReplyDispatchKind;
@@ -620,15 +641,14 @@ export async function dispatchPreparedSlackMessage(prepared: PreparedSlackMessag
620641if (err instanceof SlackStreamNotDeliveredError) {
621642streamFailed = true;
622643if (streamSession) {
623-const delivered = await deliverPendingStreamFallback(streamSession, err);
644+const delivered = await deliverBufferedStreamFallback({
645+session: streamSession,
646+ err,
647+payload: params.payload,
648+kind: params.kind,
649+textOverride: text,
650+});
624651if (delivered) {
625-replyPlan.markSent();
626-deliveryTracker.markDelivered({
627-kind: params.kind,
628-payload: params.payload,
629-threadTs: streamSession.threadTs,
630-textOverride: text,
631-});
632652return;
633653}
634654throw err;
@@ -655,15 +675,14 @@ export async function dispatchPreparedSlackMessage(prepared: PreparedSlackMessag
655675streamSession.pendingText,
656676"unknown",
657677);
658-const delivered = await deliverPendingStreamFallback(streamSession, bufferedFallbackErr);
678+const delivered = await deliverBufferedStreamFallback({
679+session: streamSession,
680+err: bufferedFallbackErr,
681+payload: params.payload,
682+kind: params.kind,
683+textOverride: text,
684+});
659685if (delivered) {
660-replyPlan.markSent();
661-deliveryTracker.markDelivered({
662-kind: params.kind,
663-payload: params.payload,
664-threadTs: streamSession.threadTs,
665-textOverride: text,
666-});
667686return;
668687}
669688}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。