Я работаю с надстройкой Outlook.У меня есть требование, чтобы я выдавал ошибку, если вложение total size > 10MB
.
Я использую следующее, чтобы сохранить новое письмо как черновик
const officeIns = this.getOfficeIns();
officeIns.context.mailbox.item.saveAsync((result) => {
cb(result.value);
});
И у меня есть следующий код, чтобы получить письмовложения
// Inside callback function to officeIns.context.mailbox.item.saveAsync
let headers = new HttpHeaders();
headers = headers.set('Authorization', `Bearer ${olUserTokenObj['token']}`);
const emailMessageId = officeIns.context.mailbox.convertToRestId(messageId, officeIns.MailboxEnums.RestVersion.v2_0);
console.log('rest id', emailMessageId);
const options = { headers: headers, withCredentials: false };
let graphApiUrl = `https://outlook.office.com/api/v2.0/me/messages`;
graphApiUrl = `${graphApiUrl}/${emailMessageId}/attachments?$select=Size,Name&_=${Date.now()}`;
const data = await this.httpClient.get(graphApiUrl, options).toPromise();
// ... calculating total size from `data.value`
и если при получении вложений возникла ошибка, я повторяю попытку получить вложения с задержкой 10 секунд 5
Однако вложения сохраняются через некоторое времятолько и не экономит в основном.Я вижу эту проблему больше в надстройке клиента Outlook.
Кажется, что saveAsync
не сохраняет вложения.Может ли кто-нибудь помочь мне в этой проблеме
Вопросы:
Можно ли использовать функцию saveAsync для сохранения вложений?
Есть ли у нас какое-либо событие office.js, которое срабатывает после сохранения всех вложений на сервере?
Есть ли другой способ решения этой проблемы?
Я прочитал этот документ и не нашел соответствующей информации.https://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.7/office.context.mailbox.item#saveasyncoptions-callback