假设我有一个非常简单的共享服务,包含一个主题:
@Injectable({ providedIn: 'root' })
export class MyService {
private _runTaskSubject = new Subject<string>();
get runTaskSubject$() {
return this._runTaskSubject.asObservable();
}
runTask(name: string) {
this._runTaskSubject.next(string);
}
}
只有在调用
runTaskSubject$
后,runTask
的观察者才会收到通知。
现在我正在考虑使用
signals
转换此服务,但似乎不是一个选项,因为 signals
始终保留初始值。那么对于这个用例保留我的 rxjs Subject
有意义吗?
其等效信号如下。
@Injectable({ providedIn: 'root' })
export class MyService {
private _runTaskSignal = signal<string | undefined>();
get runTaskSignal() {
return this._runTaskSignal.asReadOnly();
}
runTask(name: string) {
this._runTaskSignal.set(string);
}
}