--- title: 非同步的 JavaScript slug: Learn/JavaScript/Asynchronous tags: - Beginner - CodingScripting - Guide - JavaScript - Landing - Promises - async - asynchronous - await - callbacks - requestAnimationFrame - setInterval - setTimeout - 非同步的 ---
在本單元我們來討論非同步的( {{Glossary("asynchronous")}} ) {{Glossary("JavaScript")}} ,為何其如此重要,並了解它如何有效率的處理像是從伺服器獲取資源的這類潛在性阻塞( blocking )操作
非同步的 JavaScript 是一個相當進階的主題,因此建議你在嘗試本單元前能先通過 JavaScript 初探以及 JavaScript 構成元素單元。
如果你對非同步程式設計的概念還不太熟悉,強烈建議你應該先從非同步程式設計通用概念的文章開始學習。如果你已經具備其概念,那麼你或許可以跳至非同步的 JavaScript 介紹單元開始。
在本篇文章我們會介紹一些關於非同步程式設計的重要觀念,以及在網頁瀏覽器和 JavaScript 中的行為。在閱讀其他文章之前你應該先具備這些觀念。
async
函式以及 await
運算子。前者能夠讓標準的函式隱含的使用 Promise 方式來實現非同步行為,然而後者可以被用在 async
函式內部,讓程式碼繼續執行之前去等待一個 Promise 完成。這能讓我們在鏈結一連串的 Promise 的情況之下更加簡潔易懂。