Async/Await trong Javascript là gì? Những thông tin bạn cần biết

Async/Await trong Javascript là gì? Những thông tin bạn cần biết

Trong phiên bản ES7 gần đây nhất, Async/Await đã được bổ sung để việc viết code bất đồng bộ trong JavaScript tốt hơn, code dễ nhìn hơn và dễ sử dụng hơn. Vậy vai trò của Async/Await trong JavaScript là gì?

Để biết thêm về thuật ngữ Async/Await là gì và tìm hiểu thêm những thông tin quan trọng cần phải biết về nó. Mời các bạn cùng khám phá bài viết sau đây ngay bây giờ cùng với Casinovn138.com nhé!

Async/Await là gì?

  • Async/Await là một tính năng của JavaScript giúp người dùng làm việc với các hàm bất đồng bộ theo cách thú vị hơn và dễ hiểu hơn. Nó được xây dựng trên Promises và tương thích với tất cả các Promise dựa trên API. Trong đó:
  • Async – khai báo một hàm bất đồng bộ (async function someName(){…}).
  • Async cho phép sử dụng Await.
  • Tự động biến đổi một hàm thông thường thành một Promise.
  • Khi gọi tới hàm async nó sẽ xử lý mọi thứ và được trả về kết quả trong hàm của nó.
  • Await – tạm dừng việc thực hiện các hàm async. (Var result = await someAsyncCall).
  • Await chỉ có thể được sử dụng bên trong các function async.
  • Await chỉ làm việc với Promises, nó không hoạt động với callbacks.
  • Khi được đặt trước một Promise, nó sẽ đợi cho đến khi Promise kết thúc và trả về kết quả.
Async/Await là gì?
Async/Await là gì?

Bạn có thể tìm hiểu thêm về minimum viable product qua bài viết: Minimum Viable Product là gì? Vài trò và ý nghĩa

Vậy khi có Async/Await có làm cho promises lỗi thời?

  • Không hoàn toàn. Khi làm việc với Async/Await, bạn vẫn đang sử dụng ngầm Promises. Vì thế, kể cả khi đang sử dụng Async/Await cần một sự hiểu biết tốt về Promises sẽ rất tốt cho bạn.
  • Ngoài ra, có những trường hợp mà Async/Await không sử dụng được và bắt buộc bạn phải sử dụng Promises. Ví dụ như khi bạn cần gọi nhiều thao tác bất đồng bộ và chờ cho tất cả chúng kết thúc.
  • Mỗi lần gọi tới hàm await sẽ đợi cho đến khi hàm await trước đó kết thúc. Vì các wait sẽ đợi và thực hiện tuần tự từng cái một, toàn bộ chức năng sẽ mất 9 giây để thực hiện xong hàm từ đầu đến cuối (2 + 4 + 3).
  • Đây không phải là một giải pháp tối ưu vì A, B và C không phụ thuộc vào nhau, bạn không cần biết giá trị của A trước khi chúng ta có được B. Vì vậy, bạn có thể lấy chúng cùng một lúc và thời gian chờ đợi sẽ được giảm bớt đi.
  • Trong trường hợp như thế này, sử dụng Promise sẽ thích hợp hơn. Để gửi tất cả các yêu cầu cùng lúc, bạn phải sử dụng Promise.all(). Việc sử dụng Promise.all() sẽ đảm bảo bạn có tất cả các kết quả trước khi tiếp tục thực thi code, nhưng việc gọi đến các hàm bất đồng bộ sẽ được chạy song song mà không phải tuần tự từng cái một.
  • Bằng cách này, thời gian thực thi hàm sẽ mất ít hơn. Hàm getValueA và getValueC sẽ thực hiện xong trước khi getValueB xong. Thay vì phải mất 9 giây để chờ từng hàm trả về giá trị như trên, bạn sẽ chỉ mất 4 giây để chờ cả 3 hàm trả về giá trị.
Vậy khi có Async/Await có làm cho promises lỗi thời?
Vậy khi có Async/Await có làm cho promises lỗi thời?

Chia sẻ thêm cho bạn: Top 10 phần mềm SEO website chuyên nghiệp tốt nhất hiện nay

Xử lý lỗi trong Async/Await

  • Mệnh đề catch sẽ xử lý các lỗi gây ra bởi các hàm bất đồng bộ hoặc bất kỳ lỗi nào mà bạn có thể đã viết bên trong khối try.
  • Cho phép bắt các lỗi không mong đợi bằng cách sử dụng try/catch. Bạn chỉ cần để các await call của mình vào trong khối try/catch.
  • Trong một vài tình huống, bạn cũng có thể bắt các lỗi khi đang thực hiện function async. Vì tất cả các hàm async đều trả về Promises, bạn chỉ cần gọi thêm hàm .catch() khi gọi chúng.
  • Dựa vào các tình huống cụ thể, bạn sẽ sử dụng try/catch hoặc .catch() để bắt và xử lý lỗi. Tuy nhiên, không nên sử dụng cả 2 cùng một lúc vì nó có thể dẫn đến các vấn đề không mong muốn.
Xử lý lỗi trong Async/Await
Xử lý lỗi trong Async/Await

Bạn có thể quan tâm: Hướng dẫn cách tính Subnet Mask nhanh, chính xác từ IP

Hỗ trợ trình duyệt

  • Nếu các bạn dùng Node cũng có sử dụng async từ Node 8 trở lên. Nó sẽ trở thành LTS vào cuối năm nay.
  • Async/Await có thể sử dụng trong hầu hết các trình duyệt chính, ngoại trừ IE11 – tất cả các trình duyệt sẽ nhận ra mã async/await của bạn mà không cần các thư viện bên ngoài.
  • Nếu cái này không đáp ứng được nhu cầu của bạn, cũng có một số trình chuyển đổi JS như Babel và TypeScript và thư viện Node.js async/await cung cấp các phiên bản nền tảng riêng của tính năng này.
Hỗ trợ trình duyệt
Hỗ trợ trình duyệt

Với việc bổ sung Async/Await trong JavaScript, đây được xem là một bước nhảy vọt về khả năng dễ đọc và dễ sử dụng cho người mới bắt đầu với các lập trình ngôn ngữ JavaScript. Cảm ơn các bạn đã theo dõi bài viết của chuyên mục Tổng hợp nhé!

Đăng ký tham gia Casino VN138 ngay hôm nay để có cơ trải nghiệm các trò chơi nhận quà hấp dẫn bạn nhé. Chúng tôi là nhà cái cá cược hàng đầu hiện nay được nhiều người chơi lựa chọn, điều khoản dịch vụ rõ ràng cho người chơi nên bạn có thể yên tâm đăng ký.

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Đăng ký ngay!