所以我目前有以下代码等待输入元素完成输入,然后执行 ajax。
input = 输入元素 例如<input>
axiosAjax = 只是我的 ajax
fromEvent(input, "keyup")
.pipe(
map(i => i.currentTarget.value),
debounceTime(delay),
distinctUntilChanged(),
switchMap(value =>
{
this.page = 1
return this.axiosAjax({
path,
method,
data: {
...data,
[term]: value
}
})
})
)
我正在尝试将 ajax 移出 switchMap,以便我可以在此函数之外调用 ajax。例如.subscribe( () => this.aDifferentAjax() )
。但是,我仍然想保持丢弃旧 ajax 的能力。
我该怎么办?
也许看起来像这样:
fromEvent(input, "keyup")
.pipe(
map(i => i.currentTarget.value),
debounceTime(delay),
distinctUntilChanged(),
switchMap(value =>
{
this.page = 1
return value
})
)
.subscribe(
() => this.aDifferentAjax()
// ^This ajax can be discarded if new input is detected
)