rxjs 管道:Observable 类型的参数不可分配给参数
rxjs pipes: Argument of type Observable not assignable to parameter
我是 rxjs 和管道的新手 - 并且绞尽脑汁试图理解为什么我会收到此打字稿错误:"Argument of type Observable not assignable to parameter OperatorFunction"。有人可以给我解释一下吗?
目的是请求 "Hello",但在数据通过管道传输时将数据替换为 "Bye"。
ngOnInit() {
this.getHello()
.pipe(this.getBye())
.subscribe(data => console.log(data))
}
getHello() {
return of("Hello")
}
getBye() {
return of ("Bye")
}
}
使用 map 作为 Pipeable Operator:
this.getHello()
.pipe(map((data) => { return this.getBye() }))
.subscribe(data => {
console.log(data);
});
getHello() {
return of("Hello");
}
getBye() {
return of("Bye");
}
详细检查管道运算符的链接:
https://angular.io/guide/rx-library
https://blog.hackages.io/rxjs-5-5-piping-all-the-things-9d469d1b3f44
pipe 方法接收一个 OperatorFunction,但你给它你的 getBye() 方法,returns 一个 Observable。您必须传递一个 OperatorFunction,例如 "map":
ngOnInit() {
this.getHello()
.pipe(map(_ => this.getBye()))
.subscribe(data => console.log(data));
}
getHello(): Observable<string> {
return of('Hello');
}
getBye(): string {
return 'Bye';
}
创建自己的运算符时,必须将函数包装在函数中。将新事件设置到流上时调用内部函数。同时,您还可以访问流本身 (sourceStream
)。
有关工作示例,请参阅 Stackblitz。
ngOnInit() {
this.getHello()
.pipe(this.getBye())
.subscribe(data => console.log(data))
}
getHello() {
return of("Hello")
}
getBye() {
return (sourceSteam: any) => of("Bye")
}
}
https://stackblitz.com/edit/ng-Whosebug-52413693?file=index.ts
我是 rxjs 和管道的新手 - 并且绞尽脑汁试图理解为什么我会收到此打字稿错误:"Argument of type Observable not assignable to parameter OperatorFunction"。有人可以给我解释一下吗?
目的是请求 "Hello",但在数据通过管道传输时将数据替换为 "Bye"。
ngOnInit() {
this.getHello()
.pipe(this.getBye())
.subscribe(data => console.log(data))
}
getHello() {
return of("Hello")
}
getBye() {
return of ("Bye")
}
}
使用 map 作为 Pipeable Operator:
this.getHello()
.pipe(map((data) => { return this.getBye() }))
.subscribe(data => {
console.log(data);
});
getHello() {
return of("Hello");
}
getBye() {
return of("Bye");
}
详细检查管道运算符的链接: https://angular.io/guide/rx-library https://blog.hackages.io/rxjs-5-5-piping-all-the-things-9d469d1b3f44
pipe 方法接收一个 OperatorFunction,但你给它你的 getBye() 方法,returns 一个 Observable。您必须传递一个 OperatorFunction,例如 "map":
ngOnInit() {
this.getHello()
.pipe(map(_ => this.getBye()))
.subscribe(data => console.log(data));
}
getHello(): Observable<string> {
return of('Hello');
}
getBye(): string {
return 'Bye';
}
创建自己的运算符时,必须将函数包装在函数中。将新事件设置到流上时调用内部函数。同时,您还可以访问流本身 (sourceStream
)。
有关工作示例,请参阅 Stackblitz。
ngOnInit() {
this.getHello()
.pipe(this.getBye())
.subscribe(data => console.log(data))
}
getHello() {
return of("Hello")
}
getBye() {
return (sourceSteam: any) => of("Bye")
}
}
https://stackblitz.com/edit/ng-Whosebug-52413693?file=index.ts