如何在Angular2中链接Http调用?

如何在Angular2中链接Http调用?

我是Angular2和Http Observable的新手。我有一个调用Http服务并返回Observable的组件。比我订阅Observable,它工作正常。

现在,我希望在该组件中,在调用第一个Http服务之后,如果调用成功,则调用其他Http服务并返回该Observable。因此,如果第一次调用不成功,则组件返回Observable,而它返回Observable的第二次调用。

所以,问题是,链接Http调用的最佳方法是什么?有没有优雅的方式,比如monads?


胡子哥哥
浏览 698回答 3
3回答

海绵宝宝撒

使用rxjs来完成这项工作是一个非常好的解决方案。它易于阅读吗?我不知道。另一种方法是执行此操作并且更具可读性(在我看来)是使用await / async。示例:async getContrat(){    //get the customer    const customer = await this.http.get('./customer.json').toPromise();    //get the contract from url    const contract = await this.http.get(customer.contractUrl).toPromise();    return contract; // you can return what you want here}然后叫它:)this.myService.getContrat().then( (contract) => {  // do what you want});或者在异步功能中const contract = await this.myService.getContrat();您还可以使用try / catch来管理错误:let customer;try {  customer = await this.http.get('./customer.json').toPromise();}catch(err){   console.log('Something went wrong will trying to get customer');   throw err; // propagate the error   //customer = {};  //it's a possible case}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS