gpt4 book ai didi

javascript - JavaScript、Node.js 中回调的困惑

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:18 25 4
gpt4 key购买 nike

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..');

在上面的代码中,我不明白它是如何工作的。默认状态变为“Testing..”,3秒后再次显示默认状态。我很困惑。

它是如何工作的?

最佳答案

statusDefault = status.textContent,

在更改之前复制内容,并将其缓存在 JavaScript 中。这是默认内容。

setStatus = function(s){
status.textContent = s;

当函数运行时,将第一个参数设置为 statustextContent。更简单地说,它只是在函数运行时更改元素的内容。

if(s != statusDefault){

首先检查是否未输入默认值。

var delay = setTimeout(function(){
setStatus(statusDefault);
clearInterval(delay);
}, 3000);

创建一个持续 3000 毫秒(3 秒)的超时,3 秒后它再次使用 setStatus(statusDefault) 在内部调用自身,这会将内容重置为原来的内容(因为 statusDefault),并且它还会将之前的 if 语句渲染为 false,因此不会创建另一个超时。

这是一个更简短(并且可能更容易理解)的列表:

  1. 原始内容被复制到 statusDefault 中。
  2. 内容设置为“测试..”
  3. “测试..” 与原始内容不相等。
  4. 创建持续 3 秒的超时(创建 3 秒的延迟)。
  5. 函数再次在内部调用自身,并传入 statusDefault
  6. 内容设置为 statusDefault
  7. 如果陈述不正确。没有更多任务,JavaScript 已完成。

关于javascript - JavaScript、Node.js 中回调的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578617/

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