我正在尝试将 2 个管道运算符插入到管道函数中,但我想按条件应用第一个,否则,只会应用第二个。
这就是它现在没有条件的样子:
getData(query).pipe(setLoding(this.store),tap(//some actions here...))
setLoading是一个秋田管道,我希望它可以应用一些布尔条件。
我尝试使用 rxjs iif()
,但收到一个错误,因为setLoding
它不是SubscribableOrPromise
.
谁能想到另一种方式?
我正在尝试将 2 个管道运算符插入到管道函数中,但我想按条件应用第一个,否则,只会应用第二个。
这就是它现在没有条件的样子:
getData(query).pipe(setLoding(this.store),tap(//some actions here...))
setLoading是一个秋田管道,我希望它可以应用一些布尔条件。
我尝试使用 rxjs iif()
,但收到一个错误,因为setLoding
它不是SubscribableOrPromise
.
谁能想到另一种方式?
使用 rxjs iif
,您可以有条件地编写可观察对象,但它不用于处理运算符。
由于setLoading
在您的情况下是运算符,因此不能与 . 一起使用iif
。要setLoading
在管道中有条件地使用,您必须编写类似于 -
getData(query)
.pipe(
condition ? setLoading(this.store): tap(() => /* some other action */ )
)
编辑:
如果您不想在 else 情况下执行任何操作并tap
始终执行,则需要使用identity
运算符。
getData(query)
.pipe(
condition ? setLoading(this.store): identity,
tap(() => /* some other action */ )
)