Как я могу убедиться, что изображение загружено перед отправкой сообщения?В настоящее время я использую функцию setTimeout()
, чтобы обеспечить более естественное взаимодействие с чатом вместе с session.sendTyping()
.Это также в некоторой степени гарантирует, что сообщение будет правильно построено перед отправкой, но у меня все еще иногда возникают проблемы с загрузкой изображений.
Изображения размещаются в файлах Azure и доступны через HTTP с помощью ключа SAS.
Как показано на рисунке,сообщение возвращает карту героя с пустым изображением. '
Обновление: некоторый код для справки
// The function returns a message object with either a Hero Card or a text string
function addImgToMsg(table) {
let msg = new builder.Message(session);
let mainCard = new builder.HeroCard(session);
// Check if the given DB entry has an image link
if (table.img) {
mainCard.images([
builder.CardImage.create(session, 'link_to_my_image')
]);
}
// Attach the Hero Card to the message if has gotten any content
if (mainCard.data.content.images) {
msg.attachmentLayout(builder.AttachmentLayout.carousel);
msg.attachments([mainCard]);
} else {
msg.text('No was image provided.')
}
return msg;
}