ongonit 上函数参数的未定义值 return
undefined value return on ongonit for function parameter
有两个函数,第一个函数returns将结果存储在一个变量中,相同的返回结果变量作为参数传递给第二个函数以命中服务。正如下面解释的代码,这两个函数是在 ongonit 上调用的,作为一个序列,第二个函数无法捕获从 function.Is 返回的变量的结果有没有办法克服这个?
TS 代码:
udata:string;
ngOninit(){
this.f1();
this.f2();
}
f1(){
this.service.getudata().subscribe(res => {
this.udata = res;
});
}
f2(){
this.service.getudatas(this.udata).subscribe(res => {
const data = res;
});
}
f2() 在您订阅 f1() returns 之前被调用,要解决此问题,您可以在订阅响应中调用 this.f2()。
f1(){
this.service.getudata().subscribe(res =>{
this.udata = res;
this.f2();
});
}
您可以像这样将 RXJS 链接解决方案与 flatMap 一起使用:
ngOninit(){
this.f1().pipe(
flatMap( x => this.f2(x)))
.subscribe(res => const data = res);
}
f1(){
return this.service.getudata();
}
f2(udata){
return this.service.getudatas(udata);
}
有两个函数,第一个函数returns将结果存储在一个变量中,相同的返回结果变量作为参数传递给第二个函数以命中服务。正如下面解释的代码,这两个函数是在 ongonit 上调用的,作为一个序列,第二个函数无法捕获从 function.Is 返回的变量的结果有没有办法克服这个?
TS 代码:
udata:string;
ngOninit(){
this.f1();
this.f2();
}
f1(){
this.service.getudata().subscribe(res => {
this.udata = res;
});
}
f2(){
this.service.getudatas(this.udata).subscribe(res => {
const data = res;
});
}
f2() 在您订阅 f1() returns 之前被调用,要解决此问题,您可以在订阅响应中调用 this.f2()。
f1(){
this.service.getudata().subscribe(res =>{
this.udata = res;
this.f2();
});
}
您可以像这样将 RXJS 链接解决方案与 flatMap 一起使用:
ngOninit(){
this.f1().pipe(
flatMap( x => this.f2(x)))
.subscribe(res => const data = res);
}
f1(){
return this.service.getudata();
}
f2(udata){
return this.service.getudatas(udata);
}