我有两个用于触发请求的按钮,这两个按钮都是对同一个API的数据请求,不同的按钮代表不同的参数。
例如,按钮A请求2023年的数据,按钮B请求2022年的数据:
// Click button A
fetch('same/api', {
body: {
year: 2023
}
}).then(res => {
store = res;
})
// Click button B
fetch('same/api', {
body: {
year: 2022
}
}).then(res => {
store = res;
})
变量store
用于存储响应数据。
我的问题是:当我在很短的时间间隔内点击按钮A,然后点击按钮B时,按钮A的响应结果是否会覆盖按钮B的响应结果?如果是,如何解决此缺陷?
我在codepen上创建了一个简单的演示:simple demo.
问题更新:过期的响应会错误地覆盖正确的结果,现在的问题是如何修复此缺陷。现有解决方案:
1.使用同步原语
1.使用对象或Map将结果与标识符分开存储
- discard the request
有人知道哪种方法更好吗?或者有别的方法来解决这个问题吗?
1条答案
按热度按时间kqlmhetl1#
您可以检查响应是否涉及最近请求的年份。如果不涉及,则忽略响应: