面向新手的异步 JavaScript

2025-06-09

面向新手的异步 JavaScript

在编写 JavaScript 时,我们经常会遇到异步代码,这对于新手来说可能比较难懂。在深入探讨异步 JavaScript 之前,我们先来简单了解一下同步代码。

什么是同步代码?

同步代码在单线程上运行。一个操作完成后,再转到下一个操作。

 thread -
          |
          V    
          Start|Line1<---------A--------->|Finish
          Start|Line2<---------B--------->|Finish
          Start|Line3<---------C--------->|Finish


Enter fullscreen mode Exit fullscreen mode

异步代码

与同步代码不同,异步代码现在运行,稍后完成。
从下图中可以看到,fn2 行尚未完成,而是在 fn6 执行后才完成。

 thread -                                                Separate thread outside you code.
          |                                             /
          V                                            /
          Start|fn1<--------A---------->|Finish       /
          Start|fn2<--------B-----------|-------------|
          Start|fn3<--------C---------->|Finish       |
          Start|fn4<--------D---------->|Finish       V 
          Start|fn5<--------E---------->|Finish       | 
          Start|fn6<--------F---------->|Finish       V  
      Callback |fn2<--------B---------->|<------------|                                               

Enter fullscreen mode Exit fullscreen mode

请注意,JavaScript 是单线程的,只针对你编写的代码,但来自你代码的请求会被交给一个单独的线程处理。比如说一个 API 调用。等等,我知道你在想什么;什么是“回调”?别担心,接下来我们将讨论“回调”。

什么是回调?

回调是一个作为参数传递给另一个函数的函数,然后在输出函数内部调用该函数来完成某种操作。


function Callback(){
 alert("You called Me");
}

setTimeout(callback,300);

// You called Me


Enter fullscreen mode Exit fullscreen mode

这是一个同步回调,接下来我们要讨论

-异步回调。
-回调地狱。
-Ajax 请求。
-承诺。
-发电机。
鏂囩珷鏉ユ簮锛�https://dev.to/johnsamuelob/asynchronous-javascript-for-newbies-k61
PREV
10 门最佳免费算法与数据结构课程 1. CS50 计算机科学入门 2. 数据结构与算法专项 3. 算法专项 4. Python 数据结构与算法 5. 数据结构入门 6. 数据结构入门 7. 数据结构基础 8. 数据结构 9. 数据结构概念与单链表实现 10. 算法与数据结构 - 第一部分 附赠:付费课程与练习平台
NEXT
我开发了 7 次同一款应用!哪个 JS 框架最好?