javascript - 从内部返回函数返回时管道不是函数

标签 javascript angular typescript rxjs observable

我正在将一个 observable 返回给我的调用方法,但我看到了这个 - 'pipe is not a function' 错误。

这是我的数据库层

   querySomthing(request) : Observable<any> {
      // rpc call.
      return this.thirdPartyService.query(request, {}, (error, response) => {
            if (!error) {
                try {
                    console.log(response)
                    return of(response); <-- returning observable.
                }
                catch (err) {
                    console.log(error);
                    throw error;
                }
            }
            else {
                console.log(error);
                throw error;
            }
         }); 
   }

服务层(此处错误-管道不是函数)

  getinitialData(): Observable<any> {
     //Build request here.
     return this.dbLayer.querySomthing(req).pipe(map((data:any)=>{
       //Process the data here
        return DataObject;
     }));
   }

UI组件层

    ngOnInit() {
       this.service.getinitialData().subscribe((d) => {
          UIComponent.datasource = d;
       },
       (error)=>{
          toast(error);
       });
    }

当我在 DB 层尝试使用它时,它起作用了 -

   querySomthing(request) : Observable<any> {
      of(someDummyData);
   }

在上面的用例中,我还想将异常冒泡到 UI toastr。

最佳答案

this.thirdPartyService.query 未返回可观察对象。它可能返回 undefined 或其他一些对象。如果你有thirdPartyService的源代码,你可以尝试进入它;否则,此处没有足够的信息来告诉您此服务返回什么或返回的原因。

关于javascript - 从内部返回函数返回时管道不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57780900/

相关文章:

javascript - Javascript 中的时区问题将日期转换为 "Today"、 "Yesterday"、 "2 days ago"等

typescript - VsCode 插件 : Color Coding inline SQL in ts file

javascript - 将 PHP 变量的值发送到 Javascript 文档

javascript - 有没有办法为浏览器指定最小和最大缩放级别?

javascript - 在 Node js中使用回调函数执行powershell脚本

angular - 单元测试 Angular/Redux 中是否已清除所有订阅

javascript - 在第一个条件为真后,JavaScript 是否检查 “if” –“else if” –“else” 中的剩余条件?

Angular ngIf : Identifier 'length' is not defined

HTML 5 Angular 10 : Display array attribute values using EXL

typescript - Typescript 中的速率限制函数调用