Ошибка 5100 «Дождаться завершения предыдущего вызова» с повторными вызовами для добавления привязок - PullRequest
0 голосов
/ 20 сентября 2018

Я получаю эту ошибку, работая над надстройкой, чтобы показать определенные типы ошибок в тексте, выполняя поиск определенного текста, форматируя диапазон, а затем добавляя именованные привязки, а затем привязку щелчка, например, так (может быть как50 привязок в данном документе):

function highlightAndBind(text, data) {
    Word.run(function (context) {
        var body = context.document.body;
        context.load(body, "text");

        return context.sync().then(function () {
            var ranges = body.search(text, { ignoreSpace: true });
            context.load(ranges, "items");

            return context.sync().then(function () {
                if (ranges.items.length > 0) {
                    var range = ranges.items[0];
                    context.load(range, "font");

                    return context.sync().then(function () {
                        range.font.highlightColor = getColorToUseForType(data.Type);

                        var contentControl = range.insertContentControl();
                        return context.sync().then(function () {
                            contentControl.title = data.ID;
                            context.load(contentControl, 'id');

                            return context.sync().then(function () {
                                Office.context.document.bindings.addFromNamedItemAsync(contentControl.title,
                                    Office.BindingType.Text, { id: data.ID },
                                    function (result) {
                                        if (result.status === Office.AsyncResultStatus.Succeeded) {
                                            Office.select("binding#" + data.ID).addHandlerAsync(Office.EventType.BindingSelectionChanged, onBindingSelectionChanged);

                                            return context.sync().then(function () {
                                            });

                                        } else {
                                            showNotification('Error:', result.error.message);
                                        }
                                    }
                                );
                            });
                        });
                    });
                }
            });
        });
    }
}

Я ничего не вижу об этой конкретной ошибке в Интернете.Я ссылался на office.debug.js и включил ведение журнала, пытаясь сузить проблему.Кажется, что 90% времени следует за текстовым поиском:

Request:
{"AutoKeepReference":true,"Actions":[{"Id":9,"ActionType":1,"Name":"","ObjectPathId":8},{"Id":10,"ActionType":4,"Name":"IgnoreSpace","ObjectPathId":8,"ArgumentInfo":{"Arguments":[true]}},{"Id":12,"ActionType":1,"Name":"","ObjectPathId":3},{"Id":13,"ActionType":1,"Name":"","ObjectPathId":11},{"Id":14,"ActionType":3,"Name":"_KeepReference","ObjectPathId":11,"ArgumentInfo":{"Arguments":[]}},{"Id":15,"ActionType":1,"Name":"","ObjectPathId":11},{"Id":16,"ActionType":2,"Name":"","ObjectPathId":11,"QueryInfo":{"Select":["*"]},"L":[3,8,11]}],"ObjectPaths":{"3":{"Id":3,"ObjectPathType":6,"Name":"b!00000021","ArgumentInfo":{}},"8":{"Id":8,"ObjectPathType":2,"Name":"Microsoft.WordServices.SearchOptions"},"11":{"Id":11,"ObjectPathType":3,"Name":"Search","ParentObjectPathId":3,"ArgumentInfo":{"Arguments":["Text being searched for",8],"ReferencedObjectPathIds":[0,8]}}}}
Response:
{"status":"failed","error":{"name":"API Call Failed","message":"Wait until the previous call completes.","code":5100}

Это Word 2016 Version 1808 на рабочем столе Windows.Любое понимание будет оценено.Заранее спасибо.

...