将数据从可观察传递到可观察

时间:2019-08-28 21:11:03

标签: angular typescript rxjs typescript2.0 angular8

刚刚开始学习rxjs。

我很困惑如何将可观察对象从数据服务层扔到UI组件层。另外,如果DB层抛出错误,并且重新抛出以下所有层,是否可以在UI组件层中捕获它?

这是我的设置-

UI组件-

   OnInit() {
         dataService.GetData(req).Subscribe((d)=> {
            if(d) {
               comboBox.data = d;
            }
         }
       )
   }

数据服务-我对此感到困惑

   GetData(req):Observable<Object[]> {

      backendService.querydb(request).Subscribe((res)=> {
          if(res) {
             result: Object[] = Convert result to the Object I can use.
             return of(result)
          }
        }         
      );     
   }

数据库服务层-

   queryDB(request):Observable<any> {
      return this.http.get(url).pipe(map(
            (rslt: any) => {
                return rslt;
            },
            (error) => {
                this.consoleLogError(error);
                throw error;
            }
        ));
   }

1 个答案:

答案 0 :(得分:0)

数据服务应在Observable上返回-类似(伪代码):

    GetData(req):Observable<Object[]> {

      return backendService.querydb(request).map(
        pipe((res)=> {
          if(res) {
             return "result converted to the Object I can use";
          } else {
             return "something else";
          }
        })         
      );     
   }