JavaScript - 异步编程

异步编程是JavaScript的重要特性,从回调函数到Promise再到async/await,异步处理能力不断进化。

基础 回调与定时器

主题 说明 相关关键字
回调函数 将函数作为参数传递给另一个函数,在特定时机执行,是最基础的异步模式,但存在回调地狱问题。 callback 回调地狱
定时器 setTimeout()延迟执行、setInterval()周期执行、clearTimeout()/clearInterval()清除定时器。 setTimeout setInterval clearTimeout
防抖节流 防抖debounce限制函数执行频率、节流throttle固定时间间隔执行,用于优化性能。 debounce throttle

进阶 Promise

主题 说明 相关关键字
Promise 基础 Promise三种状态pending/fulfilled/rejected、new Promise()创建、then/catch/finally链式调用。 Promise pending fulfilled rejected
静态方法 Promise.resolve()/reject()创建已决议Promise、Promise.all()全部完成、Promise.race()竞速完成。 Promise.all Promise.race Promise.allSettled
Promise 进阶 Promise.allSettled等待所有完成、Promise.any任意一个完成、Promise finally无论结果如何执行。 allSettled any finally

进阶 async/await

主题 说明 相关关键字
async 函数 async声明异步函数、函数自动返回Promise、函数内可使用await等待Promise。 async await
await 等待 await暂停函数执行等待Promise resolve、捕获rejected用try-catch、错误处理更直观。 await try-catch
并发控制 Promise.all()并发等待多个Promise、for循环配合await顺序执行、Promise.race超时控制。 并发控制 Promise.all

进阶 Event Loop

主题 说明 相关关键字
执行机制 JS单线程、调用栈执行代码、同步代码直接在调用栈执行、异步代码放入任务队列。 调用栈 执行栈
宏任务与微任务 宏任务macro-task:setTimeout/setInterval/I/O/UI渲染;微任务micro-task:Promise.then/MutationObserver。 宏任务 微任务
执行顺序 每轮事件循环:先执行完所有微任务、再执行一个宏任务、然后渲染UI、更新界面。 执行顺序 事件循环
← Js Dom Js Es6Plus →