我在 ASP.NET 项目中使用 Angular 2.0 ,并且在将 rxjs 导入到this.http.get
中使用的组件时遇到错误/ this.http.post
。
角度设置:
"@angular/common": "2.0.0-rc.4",
"@angular/compiler": "2.0.0-rc.4",
"@angular/core": "2.0.0-rc.4",
"@angular/forms": "0.2.0",
"@angular/http": "2.0.0-rc.4",
"@angular/platform-browser": "2.0.0-rc.4",
"@angular/platform-browser-dynamic": "2.0.0-rc.4",
"@angular/router": "3.0.0-beta.2",
"@angular/router-deprecated": "2.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.4",
"rxjs": "5.0.0-beta.6"
在组件上:
import 'rxjs/add/operator/toPromise';
在功能中,我尝试从http.get
requet获取数据并使用toPromise
处理响应:
getData(): Promise<IToDo[]> {
return this.http.get('app/shared/todos.json')
.toPromise() // <- ERROR
.then(res => res.json())
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
return Promise.reject(error.message || error);
}
我猜toPromise()
导入不正确。但是,我在node_modules
办理登记手续时,所有订单都存在且toPromise.d.ts
,toPromise.js
,toPromise.js.map
可用。
ERROR:
Severity Code Description Project File Line Suppression State
Error TS2339 Property 'toPromise' does not exist on type 'Observable<Response>'. TypeScript Virtual Projects C:\Users\max\Desktop\LocalAccountsApp-master\LocalAccountsApp\app\home\GL\gl.service.ts 39 Active
答案 0 :(得分:0)
这通常是由最新版本引起的。解决方案是使用RC-4或RC-5以及RX-JS。你可以有一个通用的
import 'rxjs/Rx'
;