我试图从Angular调用API但是我收到此错误:
Property 'map' does not exist on type 'Observable<Response>'
这个类似问题的答案并没有解决我的问题:Angular 2 beta.17:'Observable <Response>'类型中不存在属性'map'.
我正在使用Angular 2.0.0-beta.17.
虽然这与Angular 2 beta.17看起来相同,但是'Observable <Response>'类型中不存在属性'map'
这是一个新版本,这些解决方案不适用于这个新发布的版本
我已经更新到最新的Angular 2 rc1并且无法编译.我有没有承认'承诺'的问题我最终直接安装es6-promise打字来解决这个问题.我试过输入各种导入语句但没有运气.我正在2015年的visual studio中运行
import 'rxjs/Rx';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/map';
return this._http.post(url, null, args).map(extractData).toPromise();
Run Code Online (Sandbox Code Playgroud)
但继续得到'Observable'类型不存在属性'map'
我的包文件是
"dependencies": {
"@angular/common": "2.0.0-rc.1",
"@angular/compiler": "2.0.0-rc.1",
"@angular/core": "2.0.0-rc.1",
"@angular/http": "2.0.0-rc.1",
"@angular/platform-browser": "2.0.0-rc.1",
"@angular/platform-browser-dynamic": "2.0.0-rc.1",
"@angular/router": "2.0.0-rc.1",
"@angular/router-deprecated": "2.0.0-rc.1",
"systemjs": "0.19.27",
"es6-shim": "^0.35.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"bootstrap": "^3.3.6",
"breeze-client": "~1.5.6",
"handlebars": "^4.0.5"
},
"devDependencies": {
"typescript": "^1.8.10",
"typings": "^0.8.1",
"gulp": "^3.9.1",
"jasmine-core": "~2.4.1",
"karma": "^0.13.22",
"karma-chrome-launcher": …Run Code Online (Sandbox Code Playgroud) 我需要使用async/ await来打电话http.get
我试过https://labs.encoded.io/2016/12/08/asyncawait-with-angular/
但
async getPrice(currency: string): Promise<number> {
const response = await this.http.get(this.currentPriceUrl).toPromise();
return response.json().bpi[currency].rate;
}
Run Code Online (Sandbox Code Playgroud)
toPromise()
给我一个错误:
[ts]属性'toPromise'在'Observable'类型中不存在.
任何解决方案?