容易忽略的业务场景:前端连续发起两次请求为什么数据不正确?

356 阅读1分钟

业务场景

连续调用2次同一个接口,接口A1500ms后返回值1500,接口B500ms后返回值500。

结果期望是 500,但最终却输出1500。

1.png

2.png

解决办法

我们只需要取最近一次的请求结果,忽略以前的全部请求。每一次请求时创建一个id返回结果时判断id是否一致,然后才会执行回调函数。

注:safeApi 可放在函数外,或者使用useMemo确保初始化一次。避免每次都调用requestWrap创建新的函数造成不必要的开销。

3.png

4.png