office-js - saveAsync 在后续调用中失败?
问题描述
我正在尝试使用 Office Javascript API 编写 Excel 插件。我尝试使用“设置”界面保留设置。根据文档,当我想将 saveAsync 保存到桌面时,我会调用它。我第一次调用 saveAsync 函数时,它似乎工作正常。但在随后的通话中,我总是收到错误“内部错误”。有没有办法解决这个问题?
这是我保存和持久化数据的助手类:
const StorageHelper = {};
StorageHelper.Persist = function (callback) {
return new OfficeExtension.Promise(function (resolve, reject) {
Office.context.document.settings.saveAsync(function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
reject("Failed to save data, please contact customer support: " + asyncResult.error.message);
} else {
Office.context.document.settings.refreshAsync(function (asyncResult2) {
if (callback) callback();
resolve();
});
}
});
});
};
StorageHelper.SaveSettings = function (key, value) {
Office.context.document.settings.set(key, value);
};
然后我尝试这样称呼它:
let PassDataType = $("#pass-data-type-select").val();
StorageHelper.SaveSettings("PassDataType", PassDataType);
return StorageHelper.Persist()
.then(function () {
...
}).catch(function (error) {
StatusBarHelper.SetMessage(error);
});
我多次调用此代码。我在随后的每次通话中都会收到此错误。虽然第一次工作正常。
{
"status":"failed",
"error":{
"name":"Internal Error",
"message":"An internal error has occurred.",
"code":5001
}
}
这可能是什么原因造成的?
解决方案
感谢您的帖子,看起来它不是我身边的复制品。我使用你的代码并删除了帮助类,但它在我的 mac 机器上工作得很好。这是这个测试的要点,你能分享一下你的要点吗?我想试试当地的复制品。谢谢
我的要点在这里 https://gist.github.com/lumine2008/9ecd9ee661fe64a0ddc02ebfd18c9eef
推荐阅读
- dataframe - 使用列选择器 (Cols) 转换数据框列失败
- gradle - 我授予我计算机的所有权限以解决模拟器问题,无法找到 adb,gradle 不同步。如果有人会帮助我,请
- node.js - Mongo findOne 不返回数据,即使它存在索引
- robotframework - 在机器人框架中重新测试时如何标记通过测试
- amp-html - 如何将当前时间添加到 amp-video api (1.0v)?
- javascript - Vue JS 根据传递的 props 数据在挂载上获取数据总是返回 false
- tensorflow - 带有 tf.cond 的 TensorFlow 自定义激活函数
- java - JNA 的行为与我的 C# 对应物不同,为什么?
- css - 要并排放置的表单域
- c#-4.0 - 仅更改一个 Console.WriteLine 的颜色