Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DOM中的JavaScript是异步代码还是同步代码?_Javascript_Asynchronous_Dom_Synchronous - Fatal编程技术网

DOM中的JavaScript是异步代码还是同步代码?

DOM中的JavaScript是异步代码还是同步代码?,javascript,asynchronous,dom,synchronous,Javascript,Asynchronous,Dom,Synchronous,最初的问题是:“普通的javaScript DOM查询。在继续之前,如何确保异步代码已在前端完成?” 但是我更改了标题,这样搜索查询和显示答案中实际给出的信息会更有用。 您会注意到,根据我提供的代码,我认为DOM操作是异步的。答案指出事实并非如此 如果这样的代码是异步的: let elements = document.querySelectorAll('div'); 那么,在循环之前,如何确保所有“div”元素都已存储到变量“elements”中 let elements = docume

最初的问题是:“普通的javaScript DOM查询。在继续之前,如何确保异步代码已在前端完成?”

但是我更改了标题,这样搜索查询和显示答案中实际给出的信息会更有用。

您会注意到,根据我提供的代码,我认为DOM操作是异步的。答案指出事实并非如此


如果这样的代码是异步的:

let elements = document.querySelectorAll('div');
那么,在循环之前,如何确保所有“div”元素都已存储到变量“elements”中

let elements = document.querySelectorAll('div');
//how do you know that all of the elements will 
//have been retrieved in time to run this for loop:
for(let i = 0 ; i < elements.length ; i++) {    
    let div = elements[i];    console.log(div);   
}
let elements=document.querySelectorAll('div');
//你怎么知道所有的元素都会
//已及时检索以运行此for循环:
对于(设i=0;i
如果这样的代码是异步的

它不是
querySelectorAll
不是异步函数

如何确保所有“div”元素都已存储到变量中

什么也不做


您可能需要等待的唯一原因是,如果以前的函数正在异步向DOM添加内容,那么您必须等待该函数完成。

我认为优秀的教师会发现误解并澄清它,而不是本能地否决初级问题

我以前认为,因为DOM是一个单独的接口(即与浏览器交互),所以对它的读写类似于对数据库的读写;我的代码中的错误似乎符合这个范例

实际上,JS脚本是在DOM所在的环境中执行的,因此它不是异步的。异步事件通常被发送到另一个环境,然后在事件循环中排队返回


它不是异步的。它不是异步的,所以没有问题。你的意思是如果元素还没有加载?在这里看不到问题。。。在请求帮助之前,请阅读一些js参考资料。querySelectorAll不是异步的…@Pierre有没有一些文档专门说明
querySelectorAll
是否是异步的?你有链接吗?这里有很多帮助。忽略“投票”。信息才是最重要的。快速响应评论和答案(正如您所做的那样)将为您提供获得个性化帮助的最佳机会。@Haje-(a)这意味着该值可能会被后续代码修改……在问题的循环完成之前,该代码无法运行,因此与此无关;(b)@Haje谢谢,这确实有助于我理解如何将DOM元素存储到变量中。