Javascript 如何使用异步等待函数将承诺更改为可观察?
我有一个带有控制器和服务的NestJSREST服务器 在我的控制器中,当有人发出get请求时,有get函数:Javascript 如何使用异步等待函数将承诺更改为可观察?,javascript,typescript,observable,es6-promise,nestjs,Javascript,Typescript,Observable,Es6 Promise,Nestjs,我有一个带有控制器和服务的NestJSREST服务器 在我的控制器中,当有人发出get请求时,有get函数: @Get() getAllFoos() { return this.fooService.getAllFoos(); } 在我的服务中,有一个从数据库获取文档的函数 async getAllFoos(): Promise<foos[]> { try { return await this.fooModel.find().exec();
@Get()
getAllFoos() {
return this.fooService.getAllFoos();
}
在我的服务中,有一个从数据库获取文档的函数
async getAllFoos(): Promise<foos[]> {
try {
return await this.fooModel.find().exec();
} catch(e) {
return e;
}
以及为本网站提供的服务:
getAllFoos(): Observable<foos[]> {
try {
this.fooModel.find().exec();
} catch(e) {
return e;
}
}
错误来自于
this.fooService.getAllFoos().subscribe(
这条线来自控制器。我真的不知道该怎么做才能让它现在起作用
任何帮助或想法都将不胜感激 承诺不能被视为可观察的。使用observable.from方法创建一个observable getAllFoos:可观察{ 返回Observable.fromthis.fooModel.find.exec; } rxjs版本<6: getAllFoos:可观察{ 返回Observable.fromPromisethis.fooModel.find.exec; }
在内部的服务中,try{}您不需要类似于catch{}的返回语句吗..我试过了。我的IDE将线标记为红色,然后显示以下消息:类型“Promise”缺少类型“Observable”中的以下属性:\u isScalar、soure、operator、lift和6个以上。我不知道为什么它仍然期望Promise?!如图所示,不使用observable怎么样
[Nest] 7120 - 2019-2-20 15:29:51 [ExceptionsHandler] Cannot read property 'subscribe' of undefined +4126ms
this.fooService.getAllFoos().subscribe(