角服务等待在构造
问题描述:
可观察我有一个角2服务,此构造:角服务等待在构造
constructor(public fireAuth: AngularFireAuth)
{
console.log('1');
fireAuth.authState.subscribe(user =>
{
console.log('2');
this.user = user;
});
console.log('3');
}
当它的实例,日志顺序为1,3和2,由于第二个日志是可观察的内部。我不能使用它async/await
,因为它在服务constructor
。有什么办法让这个调用同步吗?
答
您需要使用完整的回调;
console.log('1');
fireAuth.authState.subscribe(
user => {
console.log('2');
this.user = user;
},
error => console.error(error),
() => {
console.log('3');
});
我认为更好的问题是你为什么要在你的服务构造函数中这样做? – ChrisG
阅读文档,这取决于fireBase是否支持同步呼叫 –
同步XHR是巨大的禁止否。你不能。你不应该。解决方案在于这个问题。如果你不能在构造函数中做到这一点,你不应该在构造函数中做到这一点。 – estus