【问题标题】:Outlook add-in returns error 5001 when trying to get the "to" valuesOutlook 加载项在尝试获取“to”值时返回错误 5001
【发布时间】: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


【解决方案1】:

这应该通过RecipientsChanged 事件来完成。使用Office.context.mailbox.item.addHandlerAsync 订阅活动。过于频繁地调用 API 可能会导致调用受到限制,因此建议使用事件机制而不是轮询。

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 2013-08-16
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2017-07-10
    相关资源
    最近更新 更多