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. Các trường bắt buộc được đánh dấu *

??ng ký ngay!