#javascript #office-js #outlook-web-addins
#javascript #office-js #outlook-web-addins
Вопрос:
С четверга, 8 октября 2020 года, у нас возникли проблемы с получением значений «кому» в нашей надстройке Outlook. Все происходит в представлении компоновки.
Во-первых, мы проверяем каждые 500 миллисекунд, чтобы узнать, изменился ли адрес электронной почты, чтобы мы могли обновить представление:
return item['to'].getAsync((asyncResult) => {
console.log('res', asyncResult)
if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
return failure(Error(asyncResult.error.message))
}
return success(asyncResult.value)
})
Этот метод возвращает в начале возвращает правильные значения.
После этого у нас открывается диалоговое окно для создания события, и мы пытаемся получить значения почты, такие как тело, кому, от, тема и т.д. Для получения значений subject , from и to используется тот же метод, что и упомянутый выше. Но когда я пытаюсь получить значения там, я получаю код ошибки: 5001, и проверка, упомянутая выше, с этого момента завершится неудачей, и я не смогу получить значения «кому».
Я мог бы воспроизвести это в клиенте macOS, но мы видели в Sentry, что и у наших пользователей клиентов Windows возникает такая же проблема.
Это полностью останавливает использование нашего программного обеспечения большинством наших клиентов.
Комментарии:
1. Этот сценарий должен быть выполнен с помощью события RecipientsChanged и AddHandlerAsync: learn.microsoft.com/en-us/javascript/api/office/… Я не уверен, почему возникает ошибка 5001. Но слишком частый вызов этого API может привести к ошибкам, если поток FG заблокирован. На какой версии сборки и клиенте вы работаете? (macOS, Win32, OWA?)
2. Кстати, было бы здорово узнать, почему вы не используете событие recipientsChanged для этого сценария. Спасибо!
3. Я попробую это прямо сейчас! @JuanBalmori Недавно я перешел к коду, и мне не хватило ума быстрее найти событие.
4. Я могу подтвердить, что теперь все работает после использования упомянутого события. Еще раз спасибо за вашу помощь, по-прежнему странно, что с 8 октября он начал давать сбои, а до этого работал идеально, но это решение намного лучше.
5. @NinetyHH, я добавляю наш комментарий к ответу, поскольку он сработал для вас.
Ответ №1:
Это должно быть выполнено с помощью события RecipientsChanged . Подпишитесь на событие с помощью Office.context.mailbox.item.addHandlerAsync
. Слишком частый вызов API может привести к ограничению вызовов, поэтому рекомендуется использовать механизм событий вместо опроса.