У меня есть чат-бот, который хранит информацию в Azure таблицах. В одном случае использования мне нужно проверить и посмотреть, существует ли объект, и если да, добавить адрес электронной почты в поле в объекте и обновить его. Я использую azure -хранилище. Когда я впервые начал тестировать, он работал, но после нескольких итераций он начал пропускать функцию. Я использовал отладчик и был свидетелем его прохождения через часть функции if (!err)
. Однако, не изменяя (насколько мне известно) какой-либо код, теперь он пропускает всю функцию. Я ставлю дополнительные точки останова в операторах if и else, а также в самом конце функции, но она просто обходит все и переходит прямо к следующему блоку кода. Этот следующий блок заменяет сущность, и на самом деле он работает нормально. Только retrieveEntity не работает. Я не могу придумать, почему это не сработает. Любые идеи? Функционально я не вижу никакой причины, по которой он вообще не попадет в функциональный блок, и еще больше озадачен тем, что он работал в какой-то момент. Вот блок кода для retrieveEntity и insertOrReplaceEntity.
tableSvc.retrieveEntity('orderData', 'Vista', lineKey, function(err, result, response) {
if (!err) {
if (!result.userEmail._.includes(conversationData.userEmail)) {
notifyEmail = `${result.userEmail._}, ${conversationData.userEmail}`;
} else {
notifyEmail = result.userEmail._;
}
} else {
notifyEmail = conversationData.userEmail;
}
});
<<some code to define lineData for entity>>
tableSvc.insertOrReplaceEntity('orderData',lineData, async function (err, result, response) {
if (!err) {
await step.context.sendActivity('OK, I will let you know once this line item ships.');
this.appInsightsClient.trackTrace({message: `Table API - ${path.basename(__filename)}`,severity: 1,properties: {request:lineData, response:response} });
} else {
console.log(err);
await step.context.sendActivity(`I wasn't able to set up that notification for you. Please try your search again later, and if your line still hasn't shipped I can try to set it up again.`);
this.appInsightsClient.trackTrace({message: `${err.name}/${err.code} - ${path.basename(__filename)}`,severity: 4,properties: {'request':lineData, 'error':err.message} });
}
});