- vừa được xem lúc

Dùng Javascript bạn không thể bỏ qua khái niệm này - Asynchronous

0 0 22

Người đăng: Mow

Theo Viblo Asia

The Hi from Mow, ECB team.

Sử dụng Javascript, bạn chắc hẳn đã nghe qua về bất đồng bộ - asynchronous, cùng Mow tìm hiểu về Asynchronous trong Javascript nha.

async.png

Đó là khi một câu lệnh thao tác với WebAPI, nó sẽ mất một khoảng thời gian để chờ các dữ liệu trả về từ WebAPI, tuy nhiên ở trong luồng chính của javascript các câu lệnh phía sau vẫn sẽ tiếp tục được gọi chứ không đứng lại để chờ, đây là cơ chế thực thi của Javascript.

Bằng cách này, quá trình sẽ được rút gọn thời gian thực thi. Trong nhiều trường hợp, việc này sẽ gây khó dễ cho việc xử lý dữ liệu của bạn.

Nghe khó hiểu heng? Theo Mow, Mow giải thích cho con nít cũng hiểu được luôn 😄 😄 😄

Giả sử bạn vừa từ văn phòng về sau một ngày làm việc, và bạn cần phải làm các việc sau trong buổi tối:

  • Ghé chợ mua ít rau cỏ, thịt thà
  • Nấu cơm
  • Ăn cơm
  • Rửa chén
  • Đi ngủ.

example.png

Dưới đây là code để thực thi các công việc trên:

 function completeNightWorks(){ let money = 50000; let uncookedFoods = goToTheMarket(money); let dinner = cook(uncookedFoods); let dishes = eat(dinner); let washTheDishes = wash(dishes); return goToBed(); }

Vấn đề xảy ra là gì, các công việc như đi chợ, nấu ăn hay rửa chén sẽ cần một khoảng thời gian để hoàn thành, khi thực thi, JS sẽ cho các công việc trên chạy bất đồng bộ, nghĩa là các công việc trên sẽ không chạy theo thứ tự như bạn đã code.

failed_progress.png

Vậy thì làm sao bạn nấu cơm được khi bạn đi chợ chưa xong 😄 😄 😄. Hiểu rồi heng, vấn đề là JS sẽ thực thi code của bạn theo một thứ tự không nhất định, bạn sẽ không thể kiểm soát được thứ tự công việc nếu như không sử dụng các cách xử lý bất đồng bộ.

Hmmm, giờ thì bạn đã hiểu bất đồng bộ trong JS là như nào chưa. Bài viết sau mình sẽ nói về cách xử lý bất đồng bộ trong JS. Nếu có thắc mắc gì, bình luận phía bên dưới nha. Mình sẽ cùng các bạn bàn luận và giải đáp thắc mắc.

Nếu cảm thấy hữu ích, follow ngay team của Mow và khám phá thêm các bài viết khác về lập trình và việc làm trong ngành IT nha. Thanks you

Bình luận

Bài viết tương tự

- vừa được xem lúc

Testing trong Javascript với Jest (Phần 2)

Chào các bạn, lại một tháng nữa trôi qua và mình vẫn lại lên đây để chém gió như mọi khi nữa rồi . Sau khi phần 1 ra lò với biết bao sóng gió thì hôm nay mình sẽ tiếp tục cho lên sóng phần 2 của loạt

0 0 160

- vừa được xem lúc

Series : [Asynchronous programing - Javascript] - Bài 2 : Giới thiệu về asynchronous Javascript

1. Asynchronous Javascript.

0 0 37

- vừa được xem lúc

Asynchronous và khái quát về RxJava

1. Asynchronous là gì .

0 0 50

- vừa được xem lúc

Tìm hiểu về Synchronous và Asynchronous trong Javascript

1. Giới Thiệu.

0 0 88

- vừa được xem lúc

[Cơ bản] Lập trình Synchronous và Asynchronous

Xin chào mọi người. Bài viết chỉ mang tính chất giới thiệu các khái niệm căn bản. 1. Lập trình synchronous là gì :.

0 0 35

- vừa được xem lúc

Event driven programming và câu chuyện người đưa thư

Một bức tranh lớn về thiết kế hệ thống với phong cách lập trình theo phương châm: Sống là không chờ đợi. .

0 0 44