RxJs 和 Angular,我需要从路由中读取两个参数,我想使用管道运算符
RxJs and Angular, i need read two params from route and i want to use pipeable operators
给定一个 Angular 路由,我需要依次从路由器读取两个参数。
其实我的代码有嵌套订阅,但我不太喜欢它们
this.route.parent.parent.params.subscribe(params => {
//read 'params'
this.route.parent.parent.data.subscribe(anotherParams => {
//read 'anotherParams' and do some thing with 'params'
})
})
我想使用 rxjs 运算符写入 'subscribe' 一次,并在其中提供对两个参数的访问权限。
像这样:
this.route.parent.parent.params.pipe( //some operators )
.subscribe ( params, anotherParams => {
'params' and 'anotherParams" readable inside that
})
您可以使用 mergeMap
、concatMap
或 switchMap
为您订阅另一个 inner observable。
这是一个使用 switchMap 的例子:
this.route.parent.parent.params.pipe(
switchMap(params => this.route.parent.parent.data.pipe(
map(otherParams => ({params , otherParams }))
))
).subscribe(({params, otherParams}) => {
// 'params' and 'anotherParams" readable inside that
});
给定一个 Angular 路由,我需要依次从路由器读取两个参数。 其实我的代码有嵌套订阅,但我不太喜欢它们
this.route.parent.parent.params.subscribe(params => {
//read 'params'
this.route.parent.parent.data.subscribe(anotherParams => {
//read 'anotherParams' and do some thing with 'params'
})
})
我想使用 rxjs 运算符写入 'subscribe' 一次,并在其中提供对两个参数的访问权限。
像这样:
this.route.parent.parent.params.pipe( //some operators )
.subscribe ( params, anotherParams => {
'params' and 'anotherParams" readable inside that
})
您可以使用 mergeMap
、concatMap
或 switchMap
为您订阅另一个 inner observable。
这是一个使用 switchMap 的例子:
this.route.parent.parent.params.pipe(
switchMap(params => this.route.parent.parent.data.pipe(
map(otherParams => ({params , otherParams }))
))
).subscribe(({params, otherParams}) => {
// 'params' and 'anotherParams" readable inside that
});