当将它绑定到可观察的引用时,到可观察的 rxjs 管道不会引发
rxjs pipe to observable does not raise when bind it to the observable reference
谁能解释一下为什么这个 typescript 代码有效,并且 - map 和 tap 被提升:
var request = this.http.get("https://jsonplaceholder.typicode.com/todos/1")
.pipe(
map(x => {
console.log(map);
//this will be raised
}),
tap((x: any) => {
console.log(tap);
//this will be raised
}
));
request.subscribe((x) => alert(x));
在这段代码中:
var request = this.http.get("https://jsonplaceholder.typicode.com/todos/1");
request.pipe(
map(x => {
console.log(map);
//this will not be raised
}),
tap((x: any) => {
console.log(tap);
//this will not be raised
}
));
request.subscribe((x) => alert(x));
地图和水龙头没有升起。
为什么他们的行为不同?
如果这是预期的行为 - 将请求创建和管道分离到不同位置的正确方法是什么,例如 - 一种方法创建请求,第二种方法将其绑定到管道,第三种方法通过调用 'subscribe'.
来引发它
谢谢!
基本上你需要像
这样的东西
const request = this.http.get("https://jsonplaceholder.typicode.com/todos/1");
const piped = request.pipe(
map(x => {
console.log(map);
}),
tap((x: any) => {
console.log(tap);
}
));
const subscription = piped.subscribe((x) => alert(x));
注意:避免使用 var
,而是使用 const/let
,它们是块作用域的(这是您大多数时候想要的),而 var
不是。
谁能解释一下为什么这个 typescript 代码有效,并且 - map 和 tap 被提升:
var request = this.http.get("https://jsonplaceholder.typicode.com/todos/1")
.pipe(
map(x => {
console.log(map);
//this will be raised
}),
tap((x: any) => {
console.log(tap);
//this will be raised
}
));
request.subscribe((x) => alert(x));
在这段代码中:
var request = this.http.get("https://jsonplaceholder.typicode.com/todos/1");
request.pipe(
map(x => {
console.log(map);
//this will not be raised
}),
tap((x: any) => {
console.log(tap);
//this will not be raised
}
));
request.subscribe((x) => alert(x));
地图和水龙头没有升起。 为什么他们的行为不同?
如果这是预期的行为 - 将请求创建和管道分离到不同位置的正确方法是什么,例如 - 一种方法创建请求,第二种方法将其绑定到管道,第三种方法通过调用 'subscribe'.
来引发它
谢谢!
基本上你需要像
这样的东西const request = this.http.get("https://jsonplaceholder.typicode.com/todos/1");
const piped = request.pipe(
map(x => {
console.log(map);
}),
tap((x: any) => {
console.log(tap);
}
));
const subscription = piped.subscribe((x) => alert(x));
注意:避免使用 var
,而是使用 const/let
,它们是块作用域的(这是您大多数时候想要的),而 var
不是。