Nội dung bài viết
Video học lập trình mỗi ngày
Hầu hết các coder của tất cả các ngôn ngữ chứ không riêng gì javascript đều hiểu về khái niệm này. Và trong bài này tôi sẽ tổng hợp các cheatsheet để các bạn đọc mới học về async/await dễ hình dung và áp dụng vào thực tế.
Tham gia cùng chúng tôi:
Facebook: Cộng đồng lập trình javascript
Facebook Cộng đồng giới thiệu bài viết, website, sản phẩm tăng traffic.
1 - Async/await là gì?
Dịch từ Wikipedia.
Trong lập trình máy tính, mẫu async / await là một tính năng cú pháp của nhiều ngôn ngữ lập trình cho phép một chức năng không đồng bộ, không chặn được cấu trúc theo cách tương tự như một chức năng đồng bộ thông thường.
Và các nếu các bạn muốn thực tế hơn thì có thể đọc toàn bộ series về callback có 3 phần.
- [Series Callback Javascript] Phần 1: Giới Thiệu Callbacks.
- [Series Callback Javascript] - Phần 2: Promise Là Gì? Khi Nào Sử Dụng Promise ?
- Series Callback Javascript: Phần 3 : Async/Await Là Gì? Khác Gì Với Promise Trong Javascript?
- [ Tự Học Javascript] - Nếu Có Async/Await Rồi Thì Promise Có Còn Lỗi Thời? Không Cần Thiết Dùng Đến Hay Không?
2 - async/await javascript cheatsheet. Khuyến khích xem hình ảnh.
+ Có 4 trạng thái
Pending - Chờ đợi để một promises được thực hiện Fulfilled - Sau khi một promise được thực hiện thì trả về một value, hoặc... Rejected - hoặc trả về một error Outcome - Cho dù thế nào đi chăng nữa thì cũng trả về lỗi or giá trị
+ async/await Gọi một async function luôn trả về một promise.
(async () => value)() -> value (async () => outcome)() -> outcome (async () => throw error)() -> error
+ Nhiệm vụ await chờ một promise hoàn thành rồi trả về kết quả.
async function() { try { let value = await outcome // ... } catch (error) { // ... } }
+ vẫn có thể pass non-promise
const fn = async () => { let value = await value // ... }
Chú ý: await chỉ được sử dụng với async functions + Combining promises Sử dụng all() biến một array promise thành một array result.
Promise.all([ value1, value2, value3, ]) -> [value1 value2, value3]
+ Nếu bất kỳ một promise nào rejected thì sẽ bị kết thúc lỗi ngay khi có một promise nào đó bị lỗi.
Promise.all([ ... , ... , error, ]) ->error
+ Sử dụng race() Phương thức này nhận vào một mảng các promises và sẽ resolve/reject ngay khi một trong số các promises này hoàn thành/xảy ra lỗi.
Promise.race([ ... , ... , value, ]) ->value
+ promise.then( onFulfilled, onRejected ) Gọi hàm onFulfilled sau khi promise được hoàn thành
value.then(value => nextValue, ...) -> nextValue value.then(value => outcome, ...) -> outcome value.then(value => throw error, ...) -> error
+ Gọi hàm onRejected nếu promise bị từ chối
error.then(..., error => value) -> value error.then(..., error => outcome) -> outcome error.then(..., error => throw nextError) -> nextError
+ bỏ qua errors nếu onRejected không xác định
error.then(...) -> error promise.catch( onRejected )
+ Passes fulfilled values through.
value.catch(...) -> value promise.finally( onFinally )
3 - Tham khảo :
Tham gia cùng chúng tôi:
Facebook: Cộng đồng lập trình javascript
Facebook Cộng đồng giới thiệu bài viết, website, sản phẩm tăng traffic.
- https://github.com/frontarm/async-javascript-cheatsheet
- [Series Callback Javascript] Phần 1: Giới Thiệu Callbacks.
- [Series Callback Javascript] - Phần 2: Promise Là Gì? Khi Nào Sử Dụng Promise ?
- Series Callback Javascript: Phần 3 : Async/Await Là Gì? Khác Gì Với Promise Trong Javascript?
- [ Tự Học Javascript] - Nếu Có Async/Await Rồi Thì Promise Có Còn Lỗi Thời? Không Cần Thiết Dùng Đến Hay Không?