Por que o switchMap não cancela o observador anterior?
Tenho o método descrito no componente (controlador):
public requestPassportData(): void {
const th = this;
const data = {
get_scanned_data: true
};
Observable.timer(0, 1000)
.switchMap(() => this.requestMethods.requestPassportData(data))
.takeWhile(() => {
return (
th.formRegister.currentForm().index == 1 ||
th.formRegister.currentForm().index == 2 ||
th.formRegister.currentForm().index == 3
);
})
.subscribe(response => {});
}
Se chamar o métodorequestPassportData()
cinco vezes, ele enviará cada segundo pedido de cinco para o servidor. Por que o switchMap não cancela o último observador?