bot框架v4是否等同于Session.delay()?

时间:2018-11-20 02:49:47

标签: node.js botframework

我正在为SMS(Twillio频道,Node.js)构建一个Microsoft Bot Framework v4机器人,并且我需要控制消息的延迟,尤其是在发送图像时,否则,很有可能到达用户故障。

在v3 Bot框架中,这可以通过使用Session.delay(3000);轻松实现。

v4是否具有等效功能?

2 个答案:

答案 0 :(得分:3)

好的,这是我处理延迟的方法:在这种情况下,我实质上是向瀑布添加一个额外的步骤,该步骤只是充当HeroCard之后的延迟步骤。感觉有更好的方法吗?

const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));

然后,在瀑布中:

async thisIsAtextStep(step) {
            await step.context.sendActivity(
                `I am some text for the user`
            );
            return step.next();
        }

async thisIsAnimageStep(step) {
            const tocCard = CardFactory.heroCard(
                'This is an image',
                CardFactory.images([
                    'https://...someImage.png'
                ])
            );
            await step.context.sendActivity({
                attachments: [tocCard]
            });
            return step.next();
            }

 async addDelayStep(step) {
        console.log('timer start--let's wait');
        await timeout(13000);
        console.log('timer end--let's move to next step');
        return step.beginDialog(SOME_OTHER_DIALOG);
    }

答案 1 :(得分:0)

您尝试以下吗?

await context.sendActivities([{ type: 'delay', value: 13000 }]);