Ошибка «Ожидание завершения предыдущего вызова» при записи данных в Excel с использованием office.js из приложения панели задач - PullRequest
0 голосов
/ 24 апреля 2019

Фактическая проблема:

После получения последних обновлений из окон мы получаем ошибку «Ожидание завершения предыдущего вызова» для Office.js (метод API: Office.context.document.bindings.addFromNamedItemAsync).

Большинство пользователей, использующих это последнее обновление, сталкиваются с этой проблемой. (Для версии oder оно отлично работает)

Пока мы удалили обновление Windowsс компьютеров пользователей и удаления и переустановки MS Office.

Просто для информации ниже приведены наши наблюдения: Мы наблюдаем это, когда диапазон имен для записи огромен.Это происходит только после последнего обновления.Прежде чем увидеть, тот же код с тем же номером диапазона имен используется для нормальной работы.

Измененные файлы не отображаются в приложении панели задач для файла JS (но могут видеть изменения html, но не уверены, что это новая проблема с обновлением) даже после выполнения следующих шагов - Создание проекта для создания файлов JS (из сценария Type).- Непосредственно измененные файлы JS.- Удален кеш браузера IE.- Очистить решение и заново собрать - Удаленные временные файлы - Система перезапущена.

Невозможно присоединить процесс сценария отладчика к Visual Studio (он отлично работает с другой системой).

Здесьэто информация о версии, где мы сталкиваемся с этой проблемой:

enter image description here

enter image description here

Пожалуйста, дайте мне знать, если вам требуется дополнительная информация.

Обновлено 1 объяснение `

Office.select('bindings#' + namedRange, function (callback: any) {

                if (callback.status === Office.AsyncResultStatus.Failed) {
                    Office.context.document.bindings.addFromNamedItemAsync(
                        namedRange, //The name of the named item. Required.
                        bindingType, // Specifies the type of the binding object to create. Required.
                        {
                            id: namedRange, // Specifies the unique name to be used to identify the binding object. Optional. If no id argument is passed, an id will be autogenerated.
                            //asyncContext: data, // A user-defined item of any type that is returned in the AsyncResult object without being altered. Optional.
                            coercionType: bindingType
                        },
                        // A function that is invoked when the callback returns, whose only parameter is of type AsyncResult. 
                        (result: any) => {
                            if (result.status == Office.AsyncResultStatus.Succeeded) {
                                var id = result.value.id;

                                Office.select(
                                    "bindings#" + id,
                                    function onError() {
                                        defQ.reject('  Error: Binding not found');
                                    }
                                ).getDataAsync(
                                    {
                                    },
                                    (asyncResult: any) => {
                                        if (asyncResult.status == Office.AsyncResultStatus.Succeeded) {
                                            tracer.Trace("Completed read operation In ReadExcelQPromise method " + namedRange + " time elapsed -" + (Date.now() - startTime));
                                            defQ.resolve(asyncResult.value);
                                        }
                                        else {
                                            tracer.Trace("In ReadExcelQPromiseFail1 method " + namedRange + Date() + " ", asyncResult);
                                            defQ.reject('  Error: ' + asyncResult.error.message);
                                        }
                                    }
                                    );
                            }
                            else {
                                tracer.Trace("In ReadExcelQPromiseFail2 method " + namedRange + " " + Date(), result);
                                defQ.reject('  Error: ' + result.error.message);
                            }
                        });
                }
            }).getDataAsync(
                {
                },
                (asyncResult: any) => {
                    if (asyncResult.status == Office.AsyncResultStatus.Succeeded) {
                        tracer.Trace("Completed read operation In ReadExcelQPromise method " + namedRange + " time elapsed -" + (Date.now() - startTime));
                        defQ.resolve(asyncResult.value);
                    }
                    else {
                        tracer.Trace("In ReadExcelQPromiseFail3 method " + namedRange + " " + Date(), asyncResult);
                        defQ.reject('Error: ' + asyncResult.error.message);
                    }
                }
                );

Точное сообщение: В методе WriteExcelQPromiseFail3 FRWK_Base_GroupLK_MXTue 23 апреля 2019 г. 23: 55: 06 GMT + 0530 (стандартное время Индии)

Ошибка: Дождаться завершения предыдущего вызова

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