我正在为SMS(Twillio频道,Node.js)构建一个Microsoft Bot Framework v4机器人,并且我需要控制消息的延迟,尤其是在发送图像时,否则,很有可能到达用户故障。
在v3 Bot框架中,这可以通过使用Session.delay(3000);轻松实现。
v4是否具有等效功能?
答案 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 }]);