gpt4 book ai didi

office-js - Office.context.roamingSettings.saveAsync 不起作用

转载 作者:行者123 更新时间:2023-12-05 01:15:19 27 4
gpt4 key购买 nike

在我的应用程序中,我尝试删除保存到 office 上下文存储并重新加载的属性。我的代码如下:

await Office.context.roamingSettings.remove('clientID');

await Office.context.roamingSettings.saveAsync();

await customAPI.logout();

setTimeout(() => {
location.reload(true);
}, 1500);

现在在这里,如果我控制台记录 clientID 的值在 saveAsync 之后和重新加载之前,它会说 undefined .但是当我重新加载和控制台日志时,它会显示过去的值。知道为什么会这样吗?

这是一个 react 应用程序。我正在控制台记录 clientID在应用程序的 componentDidMount功能。

最佳答案

我非常惊讶这种尝试没有导致某种 react 错误。

首先,您不应该使用 await关键字与 remove方法。该方法不是 async每个文档的方法在这里:

https://docs.microsoft.com/en-us/javascript/api/outlook_1_1/office.roamingsettings?view=office-js#saveasync-callback-

现在 - saveAsync方法是,顾名思义是异步的。我强烈怀疑它是否以常规异步方法应该通过的方式处理 - 就像 promise 一样。所以 - 下面应该适合你。

/* An awaitable remove and save functionality */
removeAsyncWithPromise: function(settingName) {
return new Promise( (resolve, reject) => {
Office.context.roamingSettings.remove(settingName);
Office.context.roamingSettings.saveAsync(result => {
console.log(result);
if (result.status === Office.AsyncResultStatus.Failed) {
return reject(result);
}

return resolve(result);
});
});
}

您必须使用 try / catch当你打电话时围绕它,但你可以使用 await 。

关于office-js - Office.context.roamingSettings.saveAsync 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55085985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com