gpt4 book ai didi

angular - 在 Angular 2 中结合 promise

转载 作者:太空狗 更新时间:2023-10-29 17:42:23 24 4
gpt4 key购买 nike

有什么方法可以在 AngularJS 2 中组合 promises 吗?例如,在 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 。

关于angular - 在 Angular 2 中结合 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34405039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com