我会检查Observable是否没有元素 我做这样的事
unusedElements$: Observable<Array<string>> = this.elements;
isEmpty(): boolean {
let empty = false;
this.unusedElements$.subscribe(res => res.length > 0 ? empty = !empty : empty).unsubscribe();
return empty;
}
我想知道这是正确的方法吗?也许可以在不订阅Observable是否在Array中没有元素的情况下进行检查吗?
答案 0 :(得分:2)
如果以功能方式编程,则在极少数情况下,您将必须使用isSomething()之类的值来返回布尔值,除非它对其他流的重用很有用。
大多数时候,您只能使用过滤器使发射静音。如果您仍然想订阅其他情况,可以按如下所示拆分流,然后继续工作。您还可以使用partition
个运算符
const hasItem=unusedElements$.pipe(filter(res=>res.length>0))
hasItem.pipe(....do something)
const noItem=unusedElements$.pipe(filter(res=>res.length===0))
noItem.pipe(....do something)
功能性程序设计是关于分解任务并根据业务需求重新组合