事件发射器的默认值
Default Value for Event Emitter
假设我有一些事件从服务发出字符串值:
public myString: EventEmitter<string> = new EventEmitter<string>();
然后在我的组件中,我按如下方式发出它:
this.myService.myString.emit(value)
我想为尚未发出任何事件时使用此事件的字符串设置一个默认值。是否可以这样做:
public setString: string = 'Default Value, No Emission Yet' || this.myService.subscribe(emittedValue => this.setString = emittedValue);
既然你在使用服务,我建议不要使用EventEmitter
:
既然你想要一个初始值,我建议 BehaviorSubject
有一个初始值。
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
private myString = new BehaviorSubject<string>('Default Value, No Emission Yet')
public myString$ = this.myString.asObsevable();
然后就可以在您的组件中收听此可观察对象并相应地执行操作。组件销毁记得退订!
mySub = new Subscription();
constructor(private myService: MyService) {
this.mySub = myService.myString$.subscribe(value => {
// conditions and do stuff...
})
}
ngOnDestroy() {
this.mySub.unsubscribe();
}
假设我有一些事件从服务发出字符串值:
public myString: EventEmitter<string> = new EventEmitter<string>();
然后在我的组件中,我按如下方式发出它:
this.myService.myString.emit(value)
我想为尚未发出任何事件时使用此事件的字符串设置一个默认值。是否可以这样做:
public setString: string = 'Default Value, No Emission Yet' || this.myService.subscribe(emittedValue => this.setString = emittedValue);
既然你在使用服务,我建议不要使用EventEmitter
:
既然你想要一个初始值,我建议 BehaviorSubject
有一个初始值。
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
private myString = new BehaviorSubject<string>('Default Value, No Emission Yet')
public myString$ = this.myString.asObsevable();
然后就可以在您的组件中收听此可观察对象并相应地执行操作。组件销毁记得退订!
mySub = new Subscription();
constructor(private myService: MyService) {
this.mySub = myService.myString$.subscribe(value => {
// conditions and do stuff...
})
}
ngOnDestroy() {
this.mySub.unsubscribe();
}