JavaScript Đồng bộ và Bất đồng bộ

JavaScript chạy trên một luồng duy nhất. Điều này có nghĩa là nó thực thi từng việc một tại một thời điểm. Bạn cần hiểu cách nó xử lý các tác vụ để viết mã hiệu quả.

JavaScript Đồng bộ

Mã đồng bộ chạy theo từng dòng. Mỗi tác vụ phải chờ tác vụ trước đó hoàn thành. Điều này được gọi là chặn (blocking). Nếu một tác vụ mất nhiều thời gian, toàn bộ chương trình sẽ bị dừng lại.

JavaScript Bất đồng bộ

Mã bất đồng bộ chạy độc lập. Các tác vụ không chặn các mã khác trong khi chờ đợi. Điều này được gọi là không chặn (non-blocking). Tác vụ bắt đầu chạy ngầm và sẽ thông báo cho bạn khi nó hoàn thành.

Ba cách để xử lý các tác vụ bất đồng bộ:

  1. Callbacks: Một hàm chạy sau khi một tác vụ hoàn thành.
  2. Promises: Một đối tượng đại diện cho việc hoàn thành hoặc thất bại của một hoạt động.
  3. Async/Await: Phương pháp sạch sẽ nhất. Nó làm cho mã bất đồng bộ trông giống như mã đồng bộ mà không làm chặn luồng.

Các hoạt động bất đồng bộ phổ biến:

Event Loop giúp điều này hoạt động. Nó sử dụng Call Stack, Web APIs và Callback Queue để quản lý nhiều tác vụ cùng một lúc.

Tóm tắt:

Nguồn: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Nguồn: https://www.w3schools.com/js/js_asynchronous.asp Nguồn: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f

Bài viết đầy đủ: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69