当前位置: 首页 > 知识库问答 >
问题:

类型“Observable上不存在属性“toPromise”

羊城
2023-03-14
import { Headers, Http } from '@angular/http';

@Injectable()
export class PublisherService{

    private publishersUrl = 'app/publisher';

    constructor(private http: Http) { }

    getPublishers(): Promise<Publisher[]>{
        return this.http.get(this.publishersUrl)
                   .toPromise()
                   .then(response => response.json().data) 
                   .catch(this.handleError);
    }
}    

我得到这个错误:

属性'toPromise'不存在于类型'观察'. any中

共有3个答案

贺英悟
2023-03-14

在开始时使用此导入

import {Observable} from "rxjs/Rx";
关苗宣
2023-03-14

尝试将响应添加到您的导入语句中,从@角/超文本传输协议,如下所示:

import {Http, Headers, Response} from '@angular/http';

我还注意到,虽然使用@Injectable decorator,但并没有从angular core导入Injectable。

import { Injectable } from '@angular/core';
常子濯
2023-03-14

您需要像这样添加运算符

import 'rxjs/add/operator/toPromise';

这是您想要使用的每个rxjs操作符所必需的。

 类似资料:
  • 我使用“angular2网页包”和“angular2/表格,可见”,但遇到错误,需要帮助。。 有一个自定义表单验证程序-- 我可以找到文件"/projection_direction/node_modules/rxjs/操作员/DebounceTime.js" 为什么会有这样的错误- 类型“Observable”上不存在属性“debouceTime”。

  • 升级到Angular 6.0和Rxjs到6.0后,我收到以下编译错误:

  • 嗨,我正在使用Angular 2 final和router 3.0。我想过滤从 我想做的是: 可以是instanceOf,或,但我只想要。但是我得到一个错误

  • 在Angular 2使用Http服务的文档页面上,有一个示例。 我克隆了angular2 webpack初学者项目,并自己添加了上述代码。 我导入使用 我假设属性也被导入(起作用)。查看了rxjs.beta-6的更改日志,没有提到任何关于的内容。

  • 我在尝试创建将keyup事件转换为可观察流时遇到问题。 我正在学习Ng书籍第6版。我被困在一个示例中,在您键入时搜索YouTube视频。当搜索返回时,我们将显示视频缩略图结果列表,以及每个视频的描述和链接。 因此,我们使用observable.from事件:https://github.com/NiLinli/ng-book2-angular-6-r68-code-samples/blob/mas

  • 在使用rxjs的角度2中,我试图将promise转换为可观察的。正如许多在线指南所显示的,我在上使用了。其中抛出错误: Observable的导入方式如下: 尝试导入像其他运算符一样会导致错误: 即使我抑制了typescript错误,它仍然会导致错误: 错误: rxjs回购协议中也报告了类似的问题,但也没有解决方案。