[series callback javascript] - asynchronous javascript cheatsheet

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.

 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.