所以我目前有以下代码等待输入元素完成输入然后执行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() )
。但是,我仍然希望保留丢弃旧ajaxes的能力。
我应该怎么做?
也许看起来像这样:
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
)