如何使用带参数的 JS clearTimeout?

亚历山大·萨吉

我想创建一个非常简单的函数来模拟百叶窗的运动。它是将收到的请求的服务器上运行direction参数,上面写着盲人是否应该去UPDOWN或者它应该STOP

模拟应该是这样工作的:请求带有direction参数,服务器响应盲人是MOVING无论方向如何,运动都会持续 10 秒,如setTimeout函数中所示。关键是如果服务器收到一个请求,direction === STOP那么服务器应该调用clearTimeout“停止”盲人的运动并返回一个不同的盲人状态,说盲人是PARTLY_CLOSED

到目前为止,它是这样工作的,如果我发送一个带有某个方向的请求,服务器会MOVING按照它应该的方式进行响应当我clearTimeout在“运动”期间调用时,它实际上启动了第二个setTimeout功能。

我的问题是:如何使代码正确以及如何对setTimeout函数进行参数化

这是代码:

let blindState = "OPENED";
const blindMovementFunction = (direction) => setTimeout((direction) => {
    console.log("### direction", direction);
    if (direction === "UP") {
        blindState = "OPENED"
    } else if (direction === "DOWN") {
        blindState = "CLOSED";
    }
}, 10000);

端点内的用法:

if (req.query.direction === "STOP") {
            console.log("### blindMovementFunction", blindMovementFunction);
            clearTimeout(blindMovementFunction);
            blindState = "PARTLY_CLOSED";
            res.send(blindState);
        } else {
            blindState = "MOVING";
            res.send(blindState);

            blindMovementFunction(req.query.direction);
        }
萨帕尔

您正在将函数引用传递给clearTimeout,它需要timeoutIDsetTimeout()

在全局范围内定义

var timeoutID;

通过setTimeout()方法持久化 timeout-id 返回

timeoutID = blindMovementFunction(req.query.direction)

clearTimeout(timeoutID);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Prototype.js如何修复clearTimeout()的使用

来自分类Dev

使用clearTimeout中断setTimeout

来自分类Dev

node.js摩卡测试clearTimeout

来自分类Dev

vue.js 中 clearTimeout() 的问题

来自分类Dev

如何在Dart中执行setTimeout + clearTimeout?

来自分类Dev

使用clearTimeout()在Javascript中自动停止时间

来自分类Dev

clearTimeout无法在keyup iFrame上使用

来自分类Dev

jQuery/JS setTimeout() 在 clearTimeout() 调用后仍然运行

来自分类Dev

将clearTimeout与setTimeout的多个实例一起使用

来自分类Dev

重复使用clearInterval和clearTimeout不起作用

来自分类Dev

clearTimeout是否可以与let和const一起使用?

来自分类Dev

cancelAnimationFrame或clearTimeout

来自分类Dev

设置clearTimeOut

来自分类Dev

clearTimeout 不适用于 Node.js 中对象数组内的超时

来自分类Dev

带参数的js调用函数

来自分类Dev

带参数的角度js路由

来自分类Dev

clearTimeout()无法正常工作

来自分类Dev

如何使用带参数的模块?

来自分类Dev

如何在js字符串模板文字中调用带参数的函数?

来自分类Dev

带参数的Angular JS AJAX调用

来自分类Dev

带参数的Angular JS AJAX调用

来自分类Dev

如何使用JS / Jquery读取发布参数

来自分类Dev

如何使用angular.js传递参数?

来自分类Dev

如何为此JS函数使用参数?

来自分类Dev

当用户路由到其他页面时,setTimeout继续,如何在角度打字稿中清除clearTimeout?

来自分类Dev

JavaScript clearTimeout无法正常工作

来自分类Dev

尽管clearTimeout仍然触发setTimeout

来自分类Dev

javascript:setTimeout和clearTimeout问题

来自分类Dev

Javascript内部-触发前的clearTimeout