2

是否有 api 可以访问异步获取所有可用值Office.js,特别Office.context.mailbox.item是在 Outlook 中?

我在文档中看不到任何内容。

我需要捕获 10 个左右的字段,并且迄今为止只使用回调实现,例如

var ITEM = Office.context.mailbox.item;
var wrapper =  //fn to parse results and call next field getAsync as cb
ITEM.end.getAsync(wrapper);
4

2 回答 2

1

您提供的文档参考说明Office.context.mailbox.item是命名空间。命名空间没有枚举命名空间中所有其他方法并返回一些合并结果的方法,而是您将使用特定方法,获取结果并移至您感兴趣的下一个方法。这都是 Office.js为item.

如果您需要一次获取多个项目属性,您可以通过调用来查看 Office.js API 的 EWS 请求支持Office.context.mailbox.makeEwsRequestAsync。在您的 XML 请求中,您可以指定您感兴趣的字段并通过一个请求/响应来检索它们。有关详细信息,请参阅从 Outlook 加载项调用 Web 服务一文。

一次获取多个项目属性的另一个选项是使用 Outlook 加载项中的 Outlook REST API

于 2019-01-07T22:00:18.960 回答
1

我解决了这个问题jQuery.when

const dStart = $.Deferred()
const dEnd = $.Deferred()

Office.context.mailbox.item.start.getAsync((res) => {
  // check for errors and fetch result
  dStart.resolve()
})

Office.context.mailbox.item.end.getAsync((res) => {
  // check for errors and fetch result
  dEnd.resolve()
})

$.when(dStart, dEnd).done(function() {
  // will fire when d1 and d2 are both resolved OR rejected
}

如果你不想要 jQuery,你可以使用 Promise 和Promise.all

于 2021-10-29T18:49:55.370 回答