当前位置:  开发笔记 > 编程语言 > 正文

Angular 2 Http Async等待

如何解决《Angular2HttpAsync等待》经验,为你挑选了1个好方法。

我需要使用async/ await来打电话http.get

我试过https://labs.encoded.io/2016/12/08/asyncawait-with-angular/

async getPrice(currency: string): Promise {
  const response = await this.http.get(this.currentPriceUrl).toPromise();
  return response.json().bpi[currency].rate;
}

toPromise()

给我一个错误:

[ts]属性'toPromise'在'Observable'类型中不存在.

任何解决方案?



1> Igor..:

几乎从/sf/ask/17360801/直接复制编辑,所以它专注于toPromise而不是map.


RxJs库有很多运营商,您可以使用像toPromise,map,catch,do,等,但为了使用这些,你必须引用的文件/文件它们包含在模块中.

角度站点上的教程很好地解释了如何使用它Observable以及如何创建引用映射到您想要toPromiseRxJslib中使用的更常见的方法.通过创建一个单独的文件,引用RxJs库中更常用的运算符和类型,您只需要引用那个您想要使用这些类型的引用文件,这样就不必重新添加每个文件中的所有运算符/类型在您希望利用它们的项目中.

这是一个示例文件(rxjs-operators.ts以此示例命名),其中包含一些常用的方法.

// Observable class extensions
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';

// Observable operators
import 'rxjs/add/operator/toPromise'; // <=== your missing extension 
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';

要在文件顶部使用.toPromise(或任何其他方法)添加此行.

import './rxjs-operators';

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有