问题描述
我在开发O365加载项时遇到了阻止程序。
Windows桌面O365问题:在组合设置中首次打开我的加载项时,我可以访问Office.context.mailBox.item
,但是所有内联的“答复”和“全部答复”都有我的缓存的在。对于此缓存的加载项ItemChanged
,异步事件无法访问Office.context.mailBox.item
,除非我们稍等片刻。即Office.context.mailBox.item
是undefined
。
因此,总而言之,缓存的加载项提供了一个复杂的问题。 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