0
の残りの部分を約束を待ちます値を返す必要があります。しかし値は最初に設定されていません。 getVariableは、コンストラクタでの約束が解決するまで待つことができますか?どのように私は私のlocalStorageで変数を検索私のサービスでは、実行前にコード
の残りの部分を約束を待ちます値を返す必要があります。しかし値は最初に設定されていません。 getVariableは、コンストラクタでの約束が解決するまで待つことができますか?どのように私は私のlocalStorageで変数を検索私のサービスでは、実行前にコード
ルートリゾルバを使用することも、OnInitインターフェイスを使用することもできます。 約束が解決されるのを待つ必要がある場合は、リゾルバを使用してください。ここで
は一例です:あなたのルーティング設定で
@Injectable()
export class MyResolver implements Resolve<any> {
constructor(
private storage: MyStorageService,) {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<any> {
return this.storage.get('value').then(
(val) => {
return val;
},
() => {
return 'no value';
});
}
}
、次のようにリゾルバにあなたのルートをリンク:
{
path: 'myyPath',
component: MyComponent,
resolve: {
myResolvedValue: MyResolver // myResolvedValue is the key under which you'll be able to retrieved the resolved value. You can put whichever key you want
},
},
そして最後に、バインドルートデータの変更コンポーネントに(ということに注意してくださいあなたはOnInitを実装しなければなりません):
constructor(private route: ActivatedRoute) {
}
ngOnInit(): void {
this.route.data.subscribe(data => {
this.value= data['myResolvedValue'];
});
}
あなたのproblにいくつかのコンテキストを提供できるならem。この値を文字列補間に使用すると、変更検出が発生するのを待つだけで済みます。 –