Javascript 是否有任何方法可以确定office 365加载项中的当前操作(创建或更新)?

Javascript 是否有任何方法可以确定office 365加载项中的当前操作(创建或更新)?,javascript,office365,add-in,Javascript,Office365,Add In,下面的代码检查office 365加载项中是否存在项标识符。如果item not,则它将约会项创建为草稿,如果item存在,则它将现有约会id分配给item id。(由于用于创建和更新的异步函数,它返回的两个操作itemId属性都返回为null/undefined,因此非常混乱,无法将其用作标识的标志) 对于更新,它按预期工作,并且不会创建另一个约会项目。 因此,我希望避免创建约会项。因为我找不到任何合适的标志或替代选项来跳过这个项目创建代码(我也不能删除它,因为它是更新过程所必需的)。 所以我

下面的代码检查office 365加载项中是否存在项标识符。如果item not,则它将约会项创建为草稿,如果item存在,则它将现有约会id分配给item id。(由于用于创建和更新的异步函数,它返回的两个操作itemId属性都返回为null/undefined,因此非常混乱,无法将其用作标识的标志)

对于更新,它按预期工作,并且不会创建另一个约会项目。 因此,我希望避免创建约会项。因为我找不到任何合适的标志或替代选项来跳过这个项目创建代码(我也不能删除它,因为它是更新过程所必需的)。
所以我的问题是,有没有办法确定当前操作(创建或更新)?

我不确定我是否正确理解了您的问题,您正在使用“创建”、“编辑”、“更新”等词。请澄清这一点。您提供的代码(if ItemId语句)准确地确定了项目是来自草稿(您称之为“编辑”还是“更新”)还是新项目(您称之为“创建”)。我会帮你的,但你到底在问什么?@Slava谢谢你的回复,当我从约会导航到加载项时,我想知道约会是新的(创建)还是已经创建(更新)。上面的代码帮助我找到我将用于更新过程的现有项目id,这很好。但在新(创建)约会的情况下,没有标识符或标志可以跳过此代码块或避免创建草稿,因为我的加载项具有创建新约会id的代码。希望清除此代码。[Appcompose模式您无法同步访问项目属性]@Slava,当我查看您在msdn上的回复时,您提到只有当项目未保存到存储中时,ItemId才会为null,但我从未获得ItemId,因为null始终未定义这两种情况(创建和更新)。所有场景,我是组织者,正在运行应用程序撰写中的加载项mode@Mpr获取ItemId的目的是什么?您是否使用它发出EWS请求?为什么说在“saveAsync”调用之后itemId是未定义的?
var itemId = Office.context.mailbox.item.itemId;
if (itemId === null || itemId == undefined) {
Office.context.mailbox.item.saveAsync(function(result){
   itemId = result.value;
});
}