Office js Office.context.roamingSettings.saveAsync不';行不通

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

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

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来处理此问题。

如果解决方案解决了您的问题,我将非常感谢绿色勾号。