JavaScript中回调的混乱,Node.js
在上面的代码中,我不了解它是如何工作的。默认状态更改为“Testing..”,3秒后,它再次显示默认状态。我很困惑 它是如何工作的JavaScript中回调的混乱,Node.js,javascript,node.js,sockets,Javascript,Node.js,Sockets,在上面的代码中,我不了解它是如何工作的。默认状态更改为“Testing..”,3秒后,它再次显示默认状态。我很困惑 它是如何工作的 statusDefault = status.textContent, setStatus = function(s){ status.textContent = s;//to set any status if(s != statusDefault){ var delay = setTimeout(function(){
statusDefault = status.textContent,
setStatus = function(s){
status.textContent = s;//to set any status
if(s != statusDefault){
var delay = setTimeout(function(){
setStatus(statusDefault);
clearInterval(delay);
},3000);
}
};
setStatus('Testing..');
在内容更改之前复制内容,并将其缓存在JavaScript中。这是默认内容
statusDefault = status.textContent,
运行函数时,将第一个参数设置为status
的textContent
。更简单地说,它只是在运行函数时更改元素的内容
setStatus = function(s){
status.textContent = s;
首先检查是否未输入默认值
if(s != statusDefault){
创建一个持续3000毫秒(3秒)的超时,在3秒后,它用setStatus(statusDefault)
再次在内部调用自己,这会将内容重置为原来的内容(因为statusDefault
),并且它也会呈现前面的if语句false,因此,它不会创建另一个超时
下面是一个更简短(可能更容易理解)的列表:
statusDefault
中测试..
“测试…”
不等于原始内容statusDefault
statusDefault
var delay = setTimeout(function(){
setStatus(statusDefault);
clearInterval(delay);
}, 3000);