我定义了以下BehaviorSubject:
private posts = new BehaviorSubject<any[]>([]);
和初始化时:
ngOnInit() {
this.posts
.takeUntil(!this._postsLoaded)
.subscribe(x => {
this._postsLoaded = true;
// do something
});
}
但是它会出现以下错误,尽管它应该可以工作:
Property 'takeUntil' does not exist on type 'BehaviorSubject<any>'
答案 0 :(得分:2)
如果要像链式语法那样使用,则还必须安装rxjs compat以便向后兼容。
payload
但是我建议使用管道
npm install --save rxjs-compat
样本闪电战
https://stackblitz.com/edit/rxjs-takeuntilexample?file=index.ts
答案 1 :(得分:0)
有两件事:
在RxJS 6中,您应该使用可点运算符。如果您必须使用旧的“修补程序”样式的运算符,则需要包括rxjs-compat
软件包
takeUntil()
运算符将另一个Observable用作参数,因此无论如何您现在将抛出错误。
也许您应该改用takeWhile()
。如果您还想包括完成链的最后一个值,请参见此答案(RxJS takeWhile but include the last value。