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);
}