加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

结合Angular 2中的承诺

发布时间:2020-12-17 07:34:18 所属栏目:安全 来源:网络整理
导读:有没有办法在AngularJS 2中结合承诺? 例如,在Angular 1中,我将使用$q.all将多个请求合并为一个promise. Angular 2有等价物吗? http模块的工作方式是Observables,它与promises不同,但你可以同时进行链接和并行调用. 链接可以使用flatMap完成,并行调用可以使
有没有办法在AngularJS 2中结合承诺?
例如,在Angular 1中,我将使用$q.all将多个请求合并为一个promise.
Angular 2有等价物吗?
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

您还可以在Observable上调用toPromise()并将其转换为常规promise.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读