async customFunctions генерирует неожиданный тип сообщения при запуске - PullRequest
0 голосов
/ 07 мая 2018

У меня есть 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 Ответ

0 голосов

Не могли бы вы вместо этого ссылаться на следующую версию 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, который вы создаете для создания этих функций).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...