【发布时间】:2026-02-17 01:05:02
【问题描述】:
我正在尝试使用 NestJS 实现 gRPC,并使用 RxJS Observerable 来处理服务器流。
在下面的代码中,我尝试将值从 observable 放入 results 数组。函数findAllRepos 返回空列表 而subscribe 中的console.log(value) 正确打印所有结果。
findAllRepos(): Repository[] {
const results: Repository[] = [];
const observable = this.mainService.findAllRepos({});
observable.subscribe({
next: (value) => {
console.log(value);
results.push(value);
},
error: (err) => console.log(err),
complete: () => console.log(results)
});
return results;
}
我认为问题在于函数在subscribe 完成之前返回值。有什么解决方案可以解决这个问题吗?谢谢!
【问题讨论】:
-
您需要返回 observable 并在需要响应的地方订阅。您不能像您尝试的那样从对象同步返回值。有关异步数据的更多信息,请参见此处:*.com/q/14220321/6513921
标签: typescript rxjs nestjs grpc-node