gpt4 book ai didi

switch-statement - 这个 RxJS 示例中的 switch 语句有什么作用?

转载 作者:行者123 更新时间:2023-12-01 00:31:50 34 4
gpt4 key购买 nike

我不明白以下文档在此 RxJS example 中的含义.有人可以回答吗?

The outcome is that switched is essentially a timer that restarts on every click. The interval Observables from older clicks do not merge with the current interval Observable.

代码如下:

var clicks = Rx.Observable.fromEvent(document, 'click');
// Each click event is mapped to an Observable that ticks every second
var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));
var switched = higherOrder.switch();
// The outcome is that `switched` is essentially a timer that restarts
// on every click. The interval Observables from older clicks do not merge
// with the current interval Observable.
switched.subscribe(x => console.log(x));

最佳答案

最容易理解的 switch 模型是 autocomplete

在典型的自动完成场景中,您将从用户那里获取输入,并调用返回 promise 的服务。然后通过 .then() 附加到 Promise 以更新你的 UI。

function onChange(text: string) {
this.request(url).then((data) => this.updateListBox(data))
}

如果用户多次输入文本,您每次都会调用 onChange。不保证此时的响应顺序。您调用的端点很可能会乱序返回您的响应。 132。因此,用户将看到他们发出的第二个请求,而不是他们发出的最后一个请求。

现在 switch 的作用是,给定一个输入 observable,它只会主动监听发出给它的最后一个 observable。比如……

this.onChange
.map(text => Observable.fromPromise(this.request(text))
.switch()
.subscribe((data) => this.updateListBox(data));

每次通过 onChange 传入一个值时,我们仍会照常发出请求。一旦从 onChange 发出第二个值,我们就从第一个 observable(请求 1)unsubscribe。并订阅第二个 observable(请求 2)。

因此,一旦您更新了 UI,您就只会使用您关心的最新数据集进行更新。

关于switch-statement - 这个 RxJS 示例中的 switch 语句有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43148003/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com