繁体   English   中英

如何在 function 返回之前等待代码/订阅完成

[英]How can I wait for code/ subscription to finish before the function returns

我需要等待我的 function 中的 2 订阅完成,然后它才会返回 'this.getRows('employee')' 的值。 最好的方法是什么? 也许 rxjs 会有所帮助,但我对此并不满意。 先感谢您

getEmployeesTable(): Table {
    this.backendService.getEmployeeSummaryTable().subscribe((employees) => {
      this.emloyeeSummary = employees;
    });
    this.backendService.getEmployeesTable().subscribe((employees) => {
      this.emloyees = employees;
    });
    setTimeout(() => (table = this.getRows('employee')), 1000); // this does not help

    return this.getRows('employee'); // this should only return after the 2 functions above 
                                     //finished 
  }

forkJoin会等待两个异步操作完成

getEmployeesTable():Observable<Table>{
  
  return forkJoin({
    emloyeeSummary: this.backendService.getEmployeeSummaryTable(),
    employees: this.backendService.getEmployeesTable()
  }).pipe(
    tap((res) => {
     this.emloyeeSummary = res.emloyeeSummary;
     this.emloyees = res.employees;
    }),
    map(() => this.getRows('employee'))
  );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM