尝试订阅 returns Angular 中的 Observable 的方法
Trying to Subscribe to a method that returns an Observable in Angular
我有一个方法 returns Observable:
clockOut(): Observable<boolean> {
let isClockedOut = new Subject<boolean>();
isClockedOut.next(false);
// Some code to clock out and return x
if (x === true) {
isClockedOut.next(true);
}
return isClockedOut.asObservable();
}
我 calling/subscribing 像这样使用 clockOut() 方法:
ngOnInit() {
this.clockOut().subscribe((didClockOut: boolean) => {
if (didClockOut === true) {
// Do stuff
}
});
}
clockOut()方法被调用,clockOut()里面的代码执行正常,但是.subscribe之后的代码块没有被调用。几乎就像 clockOut() 没有返回 Observable?
我是 Angular 的新手,我使用 Observables/Subjects 的次数不多。任何帮助表示赞赏。谢谢!
subject
不会 return 对新订阅的旧事件,您正在触发,next 在 returning observable 之前,因此这些事件尚未订阅。
另外,这里不需要 Subject
,因为一切都是同步的。
如果你想触发最后一个事件,你可以使用 BehaviorSubject
而不是 subject
我有一个方法 returns Observable:
clockOut(): Observable<boolean> {
let isClockedOut = new Subject<boolean>();
isClockedOut.next(false);
// Some code to clock out and return x
if (x === true) {
isClockedOut.next(true);
}
return isClockedOut.asObservable();
}
我 calling/subscribing 像这样使用 clockOut() 方法:
ngOnInit() {
this.clockOut().subscribe((didClockOut: boolean) => {
if (didClockOut === true) {
// Do stuff
}
});
}
clockOut()方法被调用,clockOut()里面的代码执行正常,但是.subscribe之后的代码块没有被调用。几乎就像 clockOut() 没有返回 Observable?
我是 Angular 的新手,我使用 Observables/Subjects 的次数不多。任何帮助表示赞赏。谢谢!
subject
不会 return 对新订阅的旧事件,您正在触发,next 在 returning observable 之前,因此这些事件尚未订阅。
另外,这里不需要 Subject
,因为一切都是同步的。
如果你想触发最后一个事件,你可以使用 BehaviorSubject
而不是 subject