具有 API 请求的 Angular RXJS 主题和 Observable
使用 Angular 2 Http 服务和 RxJS 发出 API 请求与使用 Angular 1.x 中的 promises 非常相似。
使用 Http 类发出请求。Http 类通过相应的方法公开了发出 HTTP 请求 GET
,POST
,PUT
,DELETE
,PATCH
,HEAD
请求的方法。它还公开了用于发出任何类型的 HTTP 请求的通用 request
方法。
Http
类的所有方法都返回 Observable<Response>
,你可以应用 RxJS 操作 。你调用 .subscribe()
方法并传入一个函数,以便在 Observable 流中返回数据时进行调用。
请求的 Observable 流只包含一个值 - Response
,并在 HTTP 请求成功完成时完成/结算,如果抛出错误则为错误/错误。
注意,Http
模块返回的 observable 是冷的,这意味着如果你多次订阅 observable,则每个订阅将执行一次原始请求。如果要在应用程序的多个组件中使用结果,则会发生这种情况。对于 GET 请求,这可能只会导致一些额外请求,但如果多次订阅 PUT 或 POST 请求,则会产生意外结果。