具有 API 请求的 Angular RXJS 主题和 Observable

使用 Angular 2 Http 服务和 RxJS 发出 API 请求与使用 Angular 1.x 中的 promises 非常相似。

使用 Http 类发出请求。Http 类通过相应的方法公开了发出 HTTP 请求 GETPOSTPUTDELETEPATCHHEAD 请求的方法。它还公开了用于发出任何类型的 HTTP 请求的通用 request 方法。

Http 类的所有方法都返回 Observable<Response>,你可以应用 RxJS 操作 。你调用 .subscribe() 方法并传入一个函数,以便在 Observable 流中返回数据时进行调用。

请求的 Observable 流只包含一个值 - Response,并在 HTTP 请求成功完成时完成/结算,如果抛出错误则为错误/错误。

注意,Http 模块返回的 observable 是冷的,这意味着如果你多次订阅 observable,则每个订阅将执行一次原始请求。如果要在应用程序的多个组件中使用结果,则会发生这种情况。对于 GET 请求,这可能只会导致一些额外请求,但如果多次订阅 PUT 或 POST 请求,则会产生意外结果。