在Microsoft BOT Framework中的两个消息之间添加延迟

问题描述 投票:1回答:1

我正在Microsoft bot框架4中开发一个bot,并希望引入延迟并在两条消息之间显示“ typing”图标。我有两个声明如下:

await turnContext.SendActivityAsync(MessageFactory.Text(statement.Body), cancellationToken);
await turnContext.SendActivityAsync(MessageFactory.Carousel(GetCarousel(statement)), cancellationToken);

我想在这两个消息之间显示“类型”或“ .....”。

如何完成?

botframework
1个回答
0
投票

This answer有两种方法。许多人发现延迟活动类型对他们有用,但由于某种原因,它对我不起作用。

相反,我发现等待诺言是最好的方法。如果您只是在没有承诺的情况下添加打字活动,它将直接跳至下一个活动。您可以尝试在上面的链接答案中将键入活动与延迟活动结合使用,但是以下是我所做的事情,它对我有用。只需在您的活动之间添加这些行。

await step.context.sendActivity({ type: ActivityTypes.Typing });
await new Promise(resolve => setTimeout(resolve, process.env.DIALOG_DELAY));

我在应用设置中设置了延迟(以毫秒为单位)。我强烈建议或至少在全局范围内对其进行定义,以防您以后决定调整延迟。

© www.soinside.com 2019 - 2024. All rights reserved.