rxjs:随着用户移动滑块逐渐获取价值,并在先前完成后发送新请求

时间:2019-05-04 13:22:24

标签: javascript rxjs rxjs6 switchmap

目标:用户移动滑块,并将滑块值发送到服务器以计算一些值X,该值显示在滑块旁边,并随着滑块值的变化逐渐更新。

我所做的事情:使用了受限制的主题,switchMap可以获取该值:

sliderMoved$.pipe(
    throttleTime(200),
    switchMap(sliderVal => server.calculateX(sliderVal)
)

它可以完成工作,但是

问题:如果服务器响应时间超过限制时间,则switchMap运算符将取消previos调用。因此,滑块的缓慢移动会导致取消请求的顺序,并且只有在用户停止滑动时才更新值。

需要改进:对于每个服务器调用,我都需要等待直到响应出现,更新显示的值X,然后使用滑块的最新值触发新的调用。如果用户在有待处理的请求时停止滑动,则必须做出最后一个具有最新滑块值的请求。

(或者,如果您更好地了解它应该如何工作)

0 个答案:

没有答案