【发布时间】:2019-05-09 18:19:27
【问题描述】:
我有以下服务:
@Injectable({
providedIn: 'root'
})
export class AuthService {
user: Observable<User>;
checkEmailInterval: any;
constructor(
private afAuth: AngularFireAuth,
private afStore: AngularFirestore,
private router: Router
) {
this.user = this.afAuth.authState.pipe(
switchMap(user => {
if (user) {
console.log(user);
if (!user.emailVerified) {
console.log(this.checkEmailInterval);
clearInterval(this.checkEmailInterval);
this.checkEmailInterval = setInterval(this.checkEmailVerified.bind(this), 5000);
}
return this.afStore.doc<User>(`users/${user.uid}`).valueChanges();
}
else {
console.log("NO USER");
return of(null);
}
})
);
}
每当我打开应用程序时,它的构造函数都会被调用两次。这是预期的行为吗?我想也许它正在为注入的每个组件调用构造函数,但我在 3 个组件中使用该服务。
除此之外,我真的不确定要分享我的代码的哪一部分。有什么想法吗?
【问题讨论】:
-
看看this answer。
-
@ConnorsFan 我见过那个。实际上,我的核心模块中也有该服务,但我删除了它,它什么也没做。
-
AuthService是否出现在您项目的任何providers列表中? -
@ConnorsFan 我刚刚又经历了一遍,但在任何地方都找不到。
-
对于其他人在这里结束。检查循环依赖。我将我的服务注入到另一个服务中,导致它构建了两次。
标签: angular