Nestjs / microservice不会创建可观察的吗?

编程入门 行业动态 更新时间:2024-10-07 11:25:16

<a href=https://www.elefans.com/category/jswz/34/1771363.html style=Nestjs / microservice不会创建可观察的吗?"/>

Nestjs / microservice不会创建可观察的吗?

我正在尝试将流与grpc一起使用。但是,当我使用下面发布的代码时,它说subscribe不是函数。似乎nestjs / microservice不能从流中创建可观察对象。文档中使用的方法似乎已过时。

我的代码-原型文件:

message Rating {
  string id = 1;
  uint32 value = 2;
  string comment = 3;
  string type = 4;
}

service RatingsRpcService {
  rpc Test (stream GetRatingRequest) returns (stream Rating);
}

message GetRatingRequest {
  string id = 1;
}

message Ratings {
  repeated Rating items = 1;
}

和控制器文件:

    @GrpcStreamMethod('RatingsRpcService')
    test(msg: Observable<any>, metadata: any): Observable<any> {
        const subject = new Subject();
        msg.subscribe({
            next: (item: any) => {
                subject.next({whatever: 'value'});
            },
            error: (err: any) => console.log(err),
            complete: () => subjectplete()
        });
        return subject.asObservable();
    }

和我得到的错误:TypeError:msg.subscribe不是一个函数我错过了什么吗?

回答如下:

[好吧,我想我找到了问题。有点奇怪,但是从Observable更改类型可以修复该错误。我的意思是:messages: any,而不是消息:Observable<any>或消息:Observable<RatingInterface>。请找到下面显示的代码:

@GrpcStreamMethod('RatingsRpcService')
async findByIdStream(messages: any, metadata: any): Promise<Observable<RatingInterface>> {
    const subject = new Subject<RatingInterface>();
    messages.subscribe({
        next: async (dto: GetRatingDto) => {
            const item = await this.ratingsService.findById(dto.id);
            subject.next(item);
        },
        error: (err: any) => {
            throw new RpcException('Could not process stream.')
        },
        complete: () => subjectplete()
    });

    return subject.asObservable();
}

更多推荐

Nestjs / microservice不会创建可观察的吗?

本文发布于:2024-05-07 11:03:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755942.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Nestjs   microservice

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!