我有一个角度4应用程序。在这个应用程序中,我有一个PayPal服务,它执行一些服务器工作并导航(从客户端)到PayPal。RxJs - 订阅可观察到的最后的地方
@Injectable()
export class PaypalService {
private readonly http: HttpApi;
constructor(private readonly httpFactory: HttpFactoryService) {
this.http = httpFactory.get(HttpRequestType.Secured);
}
checkout(transactionId: string):
Observable<Response> {
let subscriber = this.http.post(environment.paymentServer + '/pay', {transactionId: transactionId})
subscriber.subscribe((response:Response) => {
let result = response.json();
window.location.href = result.paymentUrl;
});
return subscriber;
}
}
我希望所有的用户被告知后,才window.location.href将被调用。
paypal.checkout("1234").subscribe(() =>
//This code should be called before the navigation will start
doSomeCleaning())
我知道我可以使用延迟,但我不知道是否有一个更好的选择。
尝试与'flatMap'运营商都流映射例如,在年底只有一个订阅方法,从中可以调用重定向。 –