JavaScript 中的异步代码是如何工作的?
在本文中,我们将探讨异步代码在JavaScript中的实际工作方式,包括其初始化、执行和调用过程。但在继续之前,让我们先了解一下同步代码是什么,以及它与异步代码有何不同。
同步代码 - 这意味着用户按顺序获取同步调用和访问的数据。用户调用方法后,方法才会执行并进行检查。
在异步代码中,触发器由用户或系统触发。触发函数的人并不重要,一旦函数被触发,它就会给出响应,而无需完成执行。例如:从服务器下载文件。
异步函数也有一个调用栈,它接收方法调用并记录它们。这将遵循LIFO结构,即后进先出,其中每个任务函数都通过移除堆栈顶部存在的任何内容来执行。
示例 1
在下面的示例中,我们创建了一个异步代码并检查其工作方式。
异步数据的主要目的是为用户提供更快的访问速度,并在后台执行其操作。
这种方法在使用使用资源或尝试从 API 本身收集响应的 API(应用程序编程接口)时非常有用。
为了处理异步数据,我们在 JavaScript 中使用 Promise 或回调函数。这些 Promise 或回调函数可以轻松地从 API 获取响应或数据。
它还使用调用栈来记录事件以及接下来要调用的函数。我们还有事件循环、Web API 和消息队列来促进异步编程。
任何同步方法或 DOM 事件都使用 Web API 来调用函数。但在异步调用中,我们将消息发布到队列中,该队列将在后台自动执行。
事件循环执行的任务基本上取决于堆栈是否为空。如果堆栈不为空,则该特定事件循环将数据从队列获取到调用堆栈以进行执行。
# index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Asynchronous Code</title>
</head>
<body>
<h1 style="color: green;">
Welcome To Tutorials Point
</h1>
<script>
console.log("Program Starts......");
setTimeout(() => {
console.log("setTimeout execution....");
}, 0);
new Promise((resolve, reject) => {
resolve("Promise resolved.....");
})
.then((res) => console.log(res))
.catch((error) => console.log(error));
console.log("Program Ends.....");
</script>
</body>
</html>输出

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP