gpt4 book ai didi

javascript - 如何构建回调方法?

转载 作者:行者123 更新时间:2023-12-03 05:03:03 25 4
gpt4 key购买 nike

我正在尝试在 Javascript 中构建一个简单的类,它允许用户检查用户是否在输入字段中键入。

我当前的代码如下所示:

var CheckTyping = function(){
return {
typingTimer: null,
doneTypingInterval: 2000,
doneTyping : false,
done : function(callback){
return callback();
},
start: function(){
clearTimeout(this.typingTimer);
this.typingTimer = setTimeout(this.done, this.doneTypingInterval);
},
end: function(){
clearTimeout(this.typingTimer);
}
}
}();

HTML:

<input onkeyup='CheckTyping.start()' onkeydown='CheckTyping.end()'>

我希望我的 API 看起来像这样:JS

    CheckTyping.done(function(){
// this is my callback function which should work only when user is done typing.
// do something
});

目前回调函数正在自动执行。我希望该函数仅在被 setTimeout 调用时运行

最佳答案

你可以尝试类似的方法

return (function() {
var _done = null;
return {
typingTimer: null,
doneTypingInterval: 2000,
doneTyping : false,
done : function(callback){
_done = callback;
},
start: function(){
clearTimeout(this.typingTimer);
this.typingTimer = setTimeout(_done, this.doneTypingInterval);
},
end: function(){
clearTimeout(this.typingTimer);
}
};
}())

或者其他方式保存回调。然后在超时时使用保存的函数。您可能想要更改逻辑,以便 end() 方法触发回调而不是超时。线索是你必须将回调保存在某个地方,正如所写的,你只是在使用 did 方法时触发了回调。

关于javascript - 如何构建回调方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42135119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com