Microsoft O365缓存的加载项-Office.context.mailbox.item为null

问题描述

我在开发O365加载项时遇到了阻止程序。

Windows桌面O365问题:在组合设置中首次打开我的加载项时,我可以访问Office.context.mailBox.item,但是所有内联的“答复”和“全部答复”都有我的缓存的在。对于此缓存的加载项ItemChanged,异步事件无法访问Office.context.mailBox.item,除非我们稍等片刻。即Office.context.mailBox.itemundefined

因此,总而言之,缓存的加载项提供了一个复杂的问题。 ItemChanged显示用户何时在电子邮件之间进行切换。但是,如果我无法访问item,该怎么办?

我想我还会提到所有弹出窗口“答复”和“新消息”,正如预期的那样,并且所有OWA都可以使用上述逻辑。

是否还有其他人遇到此问题,或者在缓存了“撰写”设置中的“加载项”之后,是否有各种解决方法来重新建立邮箱项目?

在我的撰写加载项中运行的代码

export class BaseModule {
       constructor() {}
       
    Office.context.mailBox.addHandlerAsync( Office.EventType.ItemChanged,(eventType) => { console.log(Office.context.mailBox.item.itemId) } 

}

解决方法

 let timer = setInterval(getOfficeItem,1000);
 function getOfficeItem {
     if (Office.context.mailbox.item) {
        // Your logic
        clearInterval(timer);
     }
  }

上面是一段代码,我可以在item事件中等待办公室ItemChanged