0

実際の問題:

Windows から最新の更新プログラムを取得した後、Office.js (api メソッド: Office.context.document.bindings.addFromNamedItemAsync) の「前の呼び出しが完了するまで待機します」というエラーが表示されます。

この最新のアップデートを使用しているユーザーのほとんどは、この問題に直面しています.(他のバージョンでは完全に機能しています)

当面の間、ユーザー マシンから Windows Update を削除し、MS オフィスをアンインストールして再インストールします。

参考までに、以下に私たちの観察を示します 。これは、書き込む名前の範囲が非常に大きい場合に見られます。これは、最新の更新後にのみ発生します。以前は、同じ名前の範囲番号を持つ同じコードが正常に機能していました。

以下の手順を実行した後でも、変更されたファイルが JS ファイルのタスク ペイン アプリに反映されません (ただし、html の変更を確認できますが、これが新しい更新の問題であるかどうかはわかりません) - プロジェクトをビルドして JS ファイルを生成します (タイプ スクリプトから)。- 直接変更された JS ファイル。- IE ブラウザのキャッシュを削除しました。- ソリューションをクリーンアップして再構築 - 一時ファイルを削除 - システムを再起動。

Visual Studio にデバッガー スクリプト プロセスをアタッチできません (他のシステムでは問題なく動作しています)。

この問題に直面しているバージョン情報は次のとおりです。

ここに画像の説明を入力

ここに画像の説明を入力

さらに情報が必要な場合はお知らせください。

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);
                    }
                }
                );

正確なメッセージは次のとおりです。

エラー :前の呼び出しが完了するまで待ちます

4

0 に答える 0