SkipWhile()
就会继续跳过元素。当条件变为假时,所有剩余元素将返回。
我要尝试的是两种条件:
loading === false
和arrIds.length > 0
时输入loading === false
和arrIds.length === 0
时输入我的例子:
combineLatest([this.peopleSelectorsService.loading, this.peopleSelectorsService.allIds])
.pipe(skipWhile((observables) => !observables[0] && observables[1].length === 0))
.subscribe((observables) => {
});
结果:
答案 0 :(得分:1)
您的第一个发射是[true, []]
您的跳过条件可以重写为:
skipWhile(([loading, items]) => !loading && !items.length)
英语:skip while not loading and there are not items
,在您的第一个发射情况下,其计算结果为false && true
,即false
。
skipWhile
在得到一个false
结果之后停止跳过,因此第一个发射将不再对其求值。
您需要调整逻辑或使用其他运算符。您尚未概述预期的结果,因此无法确定。我想要的是:
skipWhile(([loading, items]) => loading || !items.length)
将跳过前2次发射,并发射第三次。