首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >去弹跳网络请求

去弹跳网络请求
EN

Stack Overflow用户
提问于 2018-01-17 12:49:40
回答 1查看 782关注 0票数 1

我有一个项目列表,项目的顺序可以由用户重新排序。更新列表顺序时,会立即触发一个onSortEnd函数。它将新订单发送到我的服务器,以更新订单。我让网络请求正常工作,但是我正在尝试实现一次失败,以限制订单发送到我的服务器的次数。例如,如果用户在10秒内更改订单3次,我实际上只需要发送最后一次订单,而不是全部3次。我的请求运行良好,但出于某种原因,我的请求在列表重新排序时立即启动,而不是取消,我也不太清楚原因。

退出函数:

代码语言:javascript
运行
复制
const debounce = (fn, delay) => {
  let timer = null;
  return () => {
    const context = this;
    const args = arguments;
    clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(context, args);
    }, delay);
  };
};

调用(在对列表进行排序时触发的React组件中的类方法):

代码语言:javascript
运行
复制
onSortEnd = () => {
  // this.props.updateItems makes the network request and works just fine...
  debounce(this.props.updateItems(updatedList), 3000, false);
};

我更喜欢用香草Javascript这样做。所有的帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-17 12:54:03

试试RxJS#debounce,见RxJS-

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48301594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档