我是Angular2和Http Observable的新手.我有一个调用Http服务并返回Observable的组件.比我订阅Observable,它工作正常.
现在,我希望在该组件中,在调用第一个Http服务之后,如果调用成功,则调用其他Http服务并返回该Observable.因此,如果第一次调用不成功,则组件返回Observable,而它返回Observable的第二次调用.
所以,问题是,链接Http调用的最佳方法是什么?有没有优雅的方式,比如monads?
我无法弄清楚如何使用 Http 请求的结果来发出另一个 Http 请求。
我有一个从后端 API 请求和接收 JSON Web 令牌的服务,如下所示:
@Injectable()
export class JwtAuthorizationService {
constructor(private http: Http) {}
public requestToken(): Observable<string> {
// Set dummy credentials.
let body = this.setBody();
let headers = this.setHeaders();
let token = this.http.post(tokenUrl, body, { headers: headers })
.map(this.extractData)
.catch(this.handleError);
// Return the Observable
return token;
}
private extractData(res: Response): string {
let body = res.text();
return body || "";
}
Run Code Online (Sandbox Code Playgroud)
我现在如何使用requestToken()
(Observable)的结果进行另一个 API 调用,通过 JWT 进行身份验证,并从中获取结果?或者更简单地说,当一个 Http 调用依赖于另一个调用的结果时,你会怎么做?