私は角4のアプリを持っています。このアプリでは、私はpaypalにいくつかのサーバー作業を行い、(クライアントから)paypalサービスを持っています。RxJs - 最後の場所でobservableを購読する
@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'演算子 'とすべてのストリームをマッピングするために、最後にそのことができますから、リダイレクトを呼び出します。 –