私は値が変わるたびに角を入力します。私は入力された値に関するデータを取得するようにサービスに頼みます。私は最後に入力された入力を気にするだけなので、ユーザーが '1'を入力してからそれを消去して '2'を入力すると、以前の値に関するデータは気にしません。私はこのような何か(私はprevNrで前の要求の値を保持)を書いた:私は、コンソールに戻って何を得るObservableから入ってくるデータをキャンセルする
let stream,
nr = document.querySelector('input').value;
if (status === `${nr} in progress`) {
stream.unsubscribe();
console.log(`subscription of ${prevNr} cancelled`)
}
status = 'in progress';
prevNr = nr;
console.log(`started subscription of ${nr}`)
stream = someService.someMethod.subscribe(() => {
const clonedNr = nr;
setTimeout(() => {
status = 'done';
console.log(`received response for ${clonedNr}`)
}, 12000);
})
は私がしたsetTimeout()で応答を模擬今
1 in progress
subscription of 1 cancelled
2 in progress
subscription of 2 cancelled
3 in progress
subscription of 3 cancelled
4 in progress
received response for 1
received response for 2
received response for 3
received response for 4
ですが、私はすることができます入力3のデータの前に入力4のデータを受け取り、このデータが間違った入力に割り当てられる状況を想像してください。 Observableで以前のリクエストを省略するにはどうすればよいですか?それは可能ですか?
(http://reactivex.io/rxjs/class/es6/Subscriber.js~Subscriber.html) – Dhyey