async customFunctions генерирует неожиданный тип сообщения при запуске
У меня есть JavaScript CustomFunctions, который отлично работает с функциями синхронизации, но как только я пытаюсь использовать функцию Async, я получаю: "
Необработанное исключение в строке 21, столбец 707859 в https://appsforoffice.microsoft.com/lib/beta/hosted/excel-win32-16.01.js 0x800a139e - Der opstod en JavaScript-kørselsfejl: непредвиденный тип сообщения
"Это происходит до того, как в моем js-файле вызывается любой код javascript. Тип сообщения - 1002, поэтому, конечно, будет выдано сообщение об ошибке, учитывая javascript в указанном месте в excel-win-16.01.js:"
if (i [t].messageType === 1001) u.push (i [t]), иначе выдает OfficeExtension.Utility.createRuntimeError(st.generalException,"непредвиденный тип сообщения", "
Описание JSON для функции:
{
"name": "helloasync",
"description": "simple test string return",
"helpUrl": "https://www.konsolidator.com",
"result": {
"type": "string",
"dimensionality": "scalar"
},
"parameters": [],
"options": {"sync": false}
},
{
"name": "ADD42ASYNC",
"description": "asynchronously wait 250ms, then add 42",
"helpUrl": "http://dev.office.com",
"result": {
"type": "number",
"dimensionality": "scalar"
},
"parameters": [
{
"name": "num",
"description": "Number",
"type": "number",
"dimensionality": "scalar"
}
],
"options": {
"sync": false
}
}
Код JS:
function helloasync() {
return new OfficeExtension.Promise(function (setResult) {
setTimeout(function () {
setResult("hello");
}, 1000);
});
}
function ADD42ASYNC(num) {
// waits 1 second before returning the result
return new OfficeExtension.Promise(function (resolve,reject) {
//resolve(num);
//reject(num);
setTimeout(function () {
resolve(num + 42);
}, 1000);
});
}
все мои асинхронные пользовательские функции терпят неудачу! Асинхронные функции боковой панели работают как положено, а также синхронные функции.
1 ответ
Не могли бы вы вместо этого ссылаться на следующую версию Office.js?
http://unpkg.com/@microsoft/office-js@custom-functions-preview/dist/office.js
CDN в настоящее время немного устарел, но вышеприведенное должно дать вам самое последнее и лучшее.
ОБНОВЛЕНИЕ, чтобы быть ясным (и я не уверен, указано ли это в настоящее время в документах или нет, я продолжаю следить за этим): ваша HTML-страница должна выглядеть следующим образом:
<script src="https://unpkg.com/@microsoft/office-js@custom-functions-preview/dist/office.js" type="text/javascript"></script>
<script src="customfunctions.js" type="text/javascript"></script>
<script type="text/javascript">
Office.Preview.startCustomFunctions();
</script>
Где средний сценарий (customfunctions.js
является ссылкой на любой файл JavaScript, который вы создаете для создания этих функций).