我正在使用azure bot框架。我只想在发送第一条消息后再发送第二条消息。
这是代码。
session.send("Hi")
response=store.getRating();
cards.Herocard(session,builder,response,function(msg){
sendCard(msg,session);
});
发送“ Hi”后,只有我想发送英雄卡。
但是有时我会遇到这样的问题,例如先发卡然后发“嗨”
我尝试设置计时器(settimeout)。但这没有道理。它有时也会失败。
是否有任何方法可以识别它或类似回调/承诺之类的东西。我不确定如何在这种情况下实现相同的功能?
答案 0 :(得分:1)
发送第一封邮件后,尝试通过将其创建为第二封邮件的附件来发送HeroCard。它应该看起来像这样:
session.send('Hi');
var followup = new builder.Message(session);
followup.attachments([
new builder.HeroCard(session)
.title("Hi")
.subtitle("I'm a herocard")
.text("i do stuff "+ session.message.text)
]);
session.send(followup);
您还可以单独构建HeroCard(在此代码块之前或在对其他构建器函数的调用中),并在发送后续消息时将其作为附件添加。以这种方式发送它应该可以防止消息混乱。