前端问题:点击开始按钮每秒调用一次接口,点击结束按钮停止调用接口怎么实现

各位大佬现在有如下需求:
点击开始按钮触发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();
    });
};`
复制代码

image.png

因为是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]);
};`
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享