首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角6: Observable<string[]>和isEmpty()算子

角6: Observable<string[]>和isEmpty()算子
EN

Stack Overflow用户
提问于 2018-07-02 11:26:56
回答 1查看 3.2K关注 0票数 2

我有这样的代码:

代码语言:javascript
复制
asList: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);    
this.list$ = this.asList.asObservable();
this.empty$ = this.list$.pipe(isEmpty());

但在模板中:

代码语言:javascript
复制
{{empty$ | async}}

总是打印'false',即使asList中有项目。

我做错什么了?

编辑:

代码语言:javascript
复制
import { map, isEmpty } from 'rxjs/operators';
import { Observable } from 'rxjs';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-02 11:44:07

您误解了isEmpty()的使用。这将检查可观测到的流是否有任何流。如果是这样的话,它就会发出false,而true则会以其他方式发出。BehaviousSubject总是有一个值,因为您用开始流值初始化它。因此,IsEmpty将始终通知false

若要检查数组是否为空,应执行以下操作:

代码语言:javascript
复制
this.empty$ = this.list$.pipe(
  map(list => list.length === 0) 
);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51135123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档