Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用异步等待函数将承诺更改为可观察?_Javascript_Typescript_Observable_Es6 Promise_Nestjs - Fatal编程技术网

Javascript 如何使用异步等待函数将承诺更改为可观察?

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();

我有一个带有控制器和服务的NestJSREST服务器

在我的控制器中,当有人发出get请求时,有get函数:

@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(