任务目标:理解同步 (Synchronous) vs 异步 (Asynchronous)
默认情况下,JS 是同步的,也就是“一根筋”。
它必须做完前一件事,才能做后一件事。如果前一件事卡住了(比如煮饭要 30 分钟),整个世界都会停下来等你!
那我煮饭的时候不能去切菜吗?
当然可以!这就是异步。
你可以把耗时的任务(比如 setTimeout 或网络请求)扔给浏览器去后台处理,自己继续往下执行代码。
怎么知道饭煮好了呢?你需要留一个电话号码(回调函数)给电饭煲。
输出顺序是:1 -> 2 -> 3。这就是异步!
点击按钮,等待 2 秒钟,看看会发生什么。
准备就绪...