Office js Office.context.roamingSettings.saveAsync不';行不通
在我的应用程序中,我尝试删除保存到office上下文存储的属性并重新加载。我的代码如下:Office js Office.context.roamingSettings.saveAsync不';行不通,office-js,Office Js,在我的应用程序中,我尝试删除保存到office上下文存储的属性并重新加载。我的代码如下: await Office.context.roamingSettings.remove('clientID'); await Office.context.roamingSettings.saveAsync(); await customAPI.logout(); setTimeout(() => { location.reload(true); }, 1500); 现在在这里,如果在sa
await Office.context.roamingSettings.remove('clientID');
await Office.context.roamingSettings.saveAsync();
await customAPI.logout();
setTimeout(() => {
location.reload(true);
}, 1500);
现在在这里,如果在saveAsync之后和重新加载之前,我控制台记录clientID
的值,它会说undefined
。但当我重新加载和控制台日志时,它将显示过去的值。知道为什么会这样吗
这是一个react应用程序。我正在将
clientID
记录到应用程序的componentDidMount
函数中。我非常惊讶这次尝试没有导致某种错误
首先,您不能将wait
关键字与remove
方法一起使用。根据此处的文档,该方法不是async
方法:
现在-正如名称所示,saveAsync
方法是async。我强烈怀疑它是否像常规异步方法那样通过类承诺来处理。所以,下面的内容应该适合你
/* 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
,但您可以使用wait来处理此问题。如果解决方案解决了您的问题,我将非常感谢绿色勾号。