点击开始按钮每秒调用一次接口,点击结束按钮停止调用接口怎么实现
各位大佬现在有如下需求:
点击开始按钮触发protoChange函数,每秒调用一次getProtocolsRequest接口拉取数据 ,点击关闭按钮触发stopChange函数停止调用getProtocolsRequest函数。具体要怎么写啊?求解!!!先在此谢过了。
const stopChange = () => {
setIsButton(false);
// 停止获取协议信息
getProtocolsRequest.cancel(history.location.pathname.split('flows/')[1]);
};
const protoChange = () => {
// 每秒获取一次某个客户端的协议信息
setIsButton(true);
getProtocolsRequest.run(history.location.pathname.split('flows/')[1], startTime).then(result => {
setProtocolsInfo([]);
setProtocolsInfo(result.protocols);
protoChange();
});
};
因为是TS项目这边有如下报错,怎么解决
let intervalInfo: NodeJS.Timeout | null = null;
const protoChange = () => {
setIsButton(true);
if (intervalInfo) {
clearInterval(intervalInfo);
}
intervalInfo = setInterval(() => {
// 每秒获取一次某个客户端的协议信息
getProtocolsRequest.run(history.location.pathname.split('flows/')[1], startTime).then(result => {
console.log(result.protocols);
setProtocolsInfo([]);
setProtocolsInfo(result.protocols);
});
}, 1000);
};
const stopChange = () => {
clearInterval(intervalInfo);
setIsButton(false);
// 停止获取协议信息
getProtocolsRequest.cancel(history.location.pathname.split('flows/')[1]);
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
直接用ahooks里面的useInterval就解决了,非常方便,想了解更多的朋友可以去官方文档深入了解