当前位置:  开发笔记 > 前端 > 正文

结合Angular 2中的承诺

如何解决《结合Angular2中的承诺》经验,为你挑选了1个好方法。

有没有办法在AngularJS 2中结合承诺?例如,在Angular 1中,我将使用$q.all多个请求组合成单个promise.Angular 2有等价物吗?



1> TGH..:

http模块的工作方式与Observables不同,它与promises不同,但你可以同时进行链接和并行调用.

链接可以使用flatMap完成,并行调用可以使用forkJoin处理.

例子:

//dependent calls (chaining)
this.http.get('./customer.json').map((res: Response) => {
                   this.customer = res.json();
                   return this.customer;
                })
                .flatMap((customer) => this.http.get(customer.contractUrl)).map((res: Response) => res.json())
                .subscribe(res => this.contract = res);

//parallel
import {Observable} from 'rxjs/Observable';
Observable.forkJoin(
  this.http.get('./friends.json').map((res: Response) => res.json()),
  this.http.get('./customer.json').map((res: Response) => res.json())
).subscribe(res => this.combined = {friends:res[0].friends, customer:res[1]});

您可以在此处找到更多详细信息和演示:

http://www.syntaxsuccess.com/viewarticle/angular-2.0-and-http

您也可以调用toPromise()Observable并将其转换为常规承诺.

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