Javascript 基于id重置特定超时

Javascript 基于id重置特定超时,javascript,angular,typescript,Javascript,Angular,Typescript,我想调用一个在输入更改后发布答案的方法。为了避免几篇文章,我尝试在发生另一次输入更改时重置超时。有什么聪明的方法可以做到这一点吗 这是一个角度项目,张贴多个不同问题的答案。所以我需要确保代码没有取消错误的超时 var调用={}; 功能postAnswer(回答){ if(调用[answer.id]){ clearTimeout(调用[answer.id]); console.log('cleared'+answer.id); } calls[answer.id]=setTimeout(()=>{

我想调用一个在输入更改后发布答案的方法。为了避免几篇文章,我尝试在发生另一次输入更改时重置超时。有什么聪明的方法可以做到这一点吗

这是一个角度项目,张贴多个不同问题的答案。所以我需要确保代码没有取消错误的超时

var调用={};
功能postAnswer(回答){
if(调用[answer.id]){
clearTimeout(调用[answer.id]);
console.log('cleared'+answer.id);
}
calls[answer.id]=setTimeout(()=>{
console.log(“posted”+answer.id)
删除呼叫[answer.id];
}, 2000)
}

也许有某种方法我不知道。例如,在RxJS或其他地方,我认为您需要在这里使用反弹跳。在rxJs中,去抖动操作符在角度上也很有用。脱BounceTime(2000年)。所以,每当用户在触发2000毫秒事件后停止键入时。这是statckblitz链接可以帮助您的

如果有不同的答案类型,这也是可用的。ie选择、单选按钮等等?我还有N个问题,所以不确定这是不是你可以的方式,如果这是你的用例。看这个。在这里,按钮点击了多次,但在计数器的结果实现了500次之后。这是你的自定义去盎司功能。我可能在这里问了一些愚蠢的问题-但是我如何为x个“问题”(不知道有多少个)添加事件监听器,这些问题可以有不同的回答类型(选择、radiobuttongroup等)。我使用ngFor*来显示问题,使用ngSwitch*来更改答案类型。但是答案总是一样的(在0到5之间)