【发布时间】:2020-10-14 02:09:47
【问题描述】:
自 2020 年 10 月 8 日星期四以来,我们开始遇到在 Outlook 加载项中获取 to 值的问题。一切都发生在撰写视图中。
首先,我们每 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)
})
这个方法在开始返回正确的值。
之后,我们打开了一个对话框来创建一个事件,我们正在尝试获取邮件值,例如正文、收件人、发件人、主题等。获取主题、收件人和收件人的值使用与上文提到的。但是当我试图在那里获取值时,我得到了错误代码:5001,并且上面提到的检查将从现在开始失败,我将无法获取到值。
我可以在 macOS 客户端中重现此问题,但我们在 Sentry 中看到我们的 Windows 客户端用户也遇到了同样的问题。
这完全阻止了我们的大多数客户使用我们的软件。
【问题讨论】:
-
这个场景应该通过 RecipientsChanged 事件和 AddHandlerAsync 来完成:docs.microsoft.com/en-us/javascript/api/office/… 我不确定为什么会发生 5001 错误。但是如果 FG 线程被阻塞,过于频繁地调用该 API 会导致错误。您使用的是什么构建版本和客户端? (MacO、Win32、OWA?)
-
NinetyHH:很高兴知道为什么您没有在这种情况下使用 recipientsChanged 事件,顺便说一句。谢谢!
-
我现在就试一试! @JuanBalmori 我最近跳到代码上,我不够聪明,无法更快地找到事件。
-
我可以确认,在使用提到的事件后,现在一切都恢复了。再次感谢您的帮助,从 10 月 8 日开始它开始失败并且在它完美运行之前仍然很奇怪,但这个解决方案要好得多。
-
@NinetyHH,我将我们的评论推广为答案,因为它对您有用。
标签: javascript office-js outlook-web-addins