属性'toPromise'在types'Observable <Response>'上不存在
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); } }
我得到这个错误:
“Observable”types的属性“toPromise”不存在
你需要像这样添加运算符:
import 'rxjs/add/operator/toPromise';
这是你想要使用的每个rxjs操作符都需要的。
尝试从'@ angular / http'添加'Response'到你的import语句中,如下所示:
import {Http, Headers, Response} from '@angular/http';
另外我注意到你不要从angular度核心导入Ingectable,尽pipe你使用@Injectable装饰器。
import { Injectable } from '@angular/core';
在开始时使用此导入
import {Observable} from "rxjs/Rx";
对于任何其他人(这是最好的谷歌链接),请参阅下面来自一个链接的答案
https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
正如它所说,在Visual Studio 2015中,您可以通过更新您的typescript版本来解决此问题
https://www.microsoft.com/en-us/download/details.aspx?id=48593
对我来说,这里标出的正确答案不起作用,我被封锁了。 所以,我通过另一个链接 ,这表明它可能是Visual Studio的问题。 我尝试了他们在答案中提出的选项,但也没有奏效。
所以,我继续安装Visual Studio代码。 事情开始对我很好,我被畅通无阻。 张贴这个被封锁的人(就像我一样)。
我知道这不是一个解决scheme,但只是一个解决方法,以帮助解锁人。
希望这可以帮助。