我有这样的代码:
asList: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);
this.list$ = this.asList.asObservable();
this.empty$ = this.list$.pipe(isEmpty());但在模板中:
{{empty$ | async}}总是打印'false',即使asList中有项目。
我做错什么了?
编辑:
import { map, isEmpty } from 'rxjs/operators';
import { Observable } from 'rxjs';发布于 2018-07-02 11:44:07
您误解了isEmpty()的使用。这将检查可观测到的流是否有任何流。如果是这样的话,它就会发出false,而true则会以其他方式发出。BehaviousSubject总是有一个值,因为您用开始流值初始化它。因此,IsEmpty将始终通知false。
若要检查数组是否为空,应执行以下操作:
this.empty$ = this.list$.pipe(
map(list => list.length === 0)
);https://stackoverflow.com/questions/51135123
复制相似问题