0

Angular 4 アプリケーションで奇妙な問題が発生しました。私のコンポーネントは、Service の BehaviorSubject をサブスクライブします。そのサブスクライブ(またはマップ、最後に変更されない)で、 data.json() を呼び出します。これは、最初に実行されたときに(空の配列である BehaviorSubject のデフォルト値から来る)、配列に .json がないため失敗します関数。

//service.ts
private _errors: BehaviorSubject<any> = new BehaviorSubject([]);
public readonly errors: Observable<any> = this._errors.asObservable();
//component.ts
this.errors.subscribe(
  (data) => {
    const errorJSON = data.json();
  }
);

一部の PC では、このエラーは、残りのアプリケーションが期待どおりに実行することを妨げません (実際には、エラーはスローされません)。他の場合、このエラーがスローされ、残りのアプリケーションが失敗します。

すべての PC にはまったく同じ環境があり、同じコマンドと angular-cli およびローカルの angular 依存関係を実行しています。これは、ng serve または ng build のいずれかで発生します。このエラーの根本的な原因を突き止めようと何度も試みた結果、「動作している PC」から生成されたファイルは「動作していない PC」で正常に実行できるため、ビルド プロセスで何かを行う必要があることがわかりました。 (「稼働中のPC」に転送された「非稼働中のPC」から生成されたファイル)は失敗します。

この問題の根源は何でしょうか? このエラーのデフォルトの動作をスローする必要がありますか? いずれにせよ、誰かが似たようなことを経験したことがありますか、またはなぜこれが起こるのかについて何か提案がありますか?

4

0 に答える 0