角度2でサービスを実行することは可能ですかスタートアップ時? ブートストラップはサービスのコンストラクタを実行しません。 また、インジェクタは、一部のコンポーネントにサービスの注入があるたびに、サービスのコンストラクタを実行しています。サービスをシングルトンにして、一度しか実行しないようにする方法はありますか?
回答:
回答№1は2ブートストラップにのみサービスを追加し、コンポーネント内の設計者にはサービスを追加しないでください。 あなたがAppComponentにそれを挿入すると、インスタンス化されるのは一度だけです。
コンポーネント上のプロバイダにサービスを追加すると、コンポーネントインスタンスごとに新しいインスタンスが作成されます。
回答№2の場合は1
ブートストラップはサービスを開始しません。これは、サービスを注入している消費クラスです。ブートストラップにリストすることで、シングルトンが取得されます。
あなたが注射可能なサービス(LogRepository)をブートストラップにリストするという慣習に従えば、すべてのサービスはシングルトンになります。 (LogRepositoryのように)
bootstrap(TheApp, [HTTP_PROVIDERS,LogRepository]);
注入可能なサービスのインスタンスは、コンポーネント上のプロバイダとしてリストアップしていますが、起動する場合はbootstrap()でリストするだけです。すべてのシングルトン。