JavaScript nào không đồng bộ?
JavaScript không đồng bộ. Mã không đồng bộ cho phép chương trình được thực thi ngay lập tức trong đó mã đồng bộ sẽ chặn việc thực thi thêm mã còn lại cho đến khi nó kết thúc mã hiện tại. Điều này có vẻ không phải là một vấn đề lớn nhưng khi bạn nhìn nó trong một bức tranh lớn hơn, bạn nhận ra rằng nó có thể dẫn đến việc trì hoãn Giao diện người dùng Show Hãy cho chúng tôi xem ví dụ về cách JavaScript không đồng bộ chạy
đầu ra Vì vậy, những gì đoạn mã làm là đầu tiên nó đăng nhập vào Lúc đầu, như thường lệ, câu lệnh Chúng tôi, những người, thích cấu trúc. Chúng tôi thích các danh mục và mô tả và đặt mọi thứ chúng tôi biết vào những chiếc hộp nhỏ ngăn nắp. Đây là lý do tại sao lúc đầu tôi thấy JavaScript rất khó hiểu. Nó là một kịch bản hay một ngôn ngữ lập trình? Điều tuyệt vời (đọc. khủng khiếp) về JavaScript là, hầu hết thời gian, nó là một chút của cả hai. JavaScript đã phát triển rất nhiều trong những năm qua nên việc phân loại trở nên khó khăn. Hôm nay, tôi sẽ đi sâu vào việc liệu JavaScript là đồng bộ hay không đồng bộ và quy trình công việc bên dưới trông như thế nào JavaScript là đồng bộ spoiler. về cơ bản, JavaScript là một ngôn ngữ đơn luồng, chặn, đồng bộ. Điều đó chỉ có nghĩa là tại một thời điểm chỉ có một hoạt động có thể được tiến hành. Đó không phải là toàn bộ câu chuyện, mặc dù Hình ảnh của Ankit KambojNếu bạn phải thực hiện một yêu cầu cơ sở dữ liệu đắt tiền thì sao? . Mã đồng bộ khiến cuộc sống của lập trình viên trở nên rất khó khăn, vì vậy cộng đồng JavaScript đã phát triển một số cách giải quyết tuyệt vời Khi bạn nghe mọi người nói rằng JavaScript là ngôn ngữ không đồng bộ, ý của họ là bạn có thể điều khiển JavaScript để hoạt động theo cách không đồng bộ. Nó không được nướng trong, nhưng nó có thể. Dưới đây là một số cách để thực hiện điều đó Gọi lại không đồng bộ Giải pháp sớm nhất và đơn giản nhất để bị mắc kẹt trong thế giới đồng bộ là gọi lại không đồng bộ (nghĩ rằng Hãy sử dụng một yêu cầu cơ sở dữ liệu làm ví dụ. các lệnh gọi lại không đồng bộ cho phép bạn gọi một hàm gọi lại gửi yêu cầu cơ sở dữ liệu (và bất kỳ lệnh gọi lại lồng nhau nào khác) đến ứng dụng của bạn, nơi ứng dụng chờ phản hồi từ cơ sở dữ liệu, giải phóng phần còn lại của mã để tiếp tục chạy Hình ảnh của Ankit KambojKhi yêu cầu cơ sở dữ liệu hoàn tất, kết quả (và bất kỳ mã lồng nhau nào khác) được gửi đến hàng đợi, sau đó được xử lý thông qua vòng lặp sự kiện Trong sơ đồ ở đây, bạn có thể thấy điều này khác với mã đồng bộ như thế nào. Chức năng C, cùng với E, F và G đều được gửi đến trình duyệt, hàng đợi và vòng lặp sự kiện
Bây giờ, đây là một giải pháp tuyệt vời, nhưng nó để lại một chút gì đó mong muốn. Bởi vì bạn không thể dự đoán chính xác khi nào hàm C sẽ giải quyết, bạn phải lồng tất cả các hàm phụ thuộc vào nó. Điều này trở nên lộn xộn nhanh chóng và dẫn đến địa ngục gọi lại khét tiếng mà không ai muốn giải quyết. Chính môi trường này đã truyền cảm hứng cho lời hứa lời hứa Để đối phó với địa ngục gọi lại, các thư viện như Bluebird hoặc Q đã cho phép các lập trình viên dọn dẹp cú pháp của họ và viết mã hoạt động không đồng bộ nhưng có vẻ đồng bộ. Điều này dẫn đến mã dễ đọc hơn và chạy nhanh hơn Hình ảnh của Ankit KambojVới một lời hứa, thay vì gộp tất cả các phần phụ thuộc vào một khối mã và gửi toàn bộ nội dung đó tới trình duyệt, chúng tôi có thể tách chúng ra Chúng tôi có thể gửi cuộc gọi lại không đồng bộ (Chức năng C) tới trình duyệt và sử dụng Điều này cho phép chúng tôi viết mã theo cách mô-đun dễ đọc hơn, trong khi vẫn đạt được những lợi ích của lập trình không đồng bộ Không đồng bộ/Đang chờ Những lời hứa thật tuyệt vời — thực tế là tuyệt vời đến mức ES6 đã đưa chúng vào ngôn ngữ như một tiêu chuẩn. Việc sử dụng các lời hứa vẫn khiến mã không đồng bộ trông có vẻ hơi khó hiểu, vì vậy giờ đây chúng tôi có Async/Await tuyệt đẹp và tuyệt đẹp để giúp chúng tôi giải quyết Khai báo Ví dụ cho Async Await. - Có toàn bộ bài đăng trên blog và (tôi chắc chắn) sách viết về Async/Await, vì vậy tôi sẽ không đi sâu vào vấn đề này, nhưng đủ để nói rằng Async/Await cho phép bạn JavaScript có thực sự không đồng bộ không?JavaScript là ngôn ngữ lập trình đồng thời, không chặn, không đồng bộ, đơn luồng với nhiều tính linh hoạt.
JavaScript theo mặc định có phải là không đồng bộ không?JavaScript được đồng bộ hóa theo mặc định và là luồng đơn. Điều này có nghĩa là mã không thể tạo chủ đề mới và nó sẽ thực thi khối mã của bạn theo thứ tự sau khi cẩu.
JavaScript là đồng bộ hay không đồng bộ?Javascript là ngôn ngữ đơn luồng đồng bộ nhưng với sự trợ giúp của vòng lặp sự kiện và lời hứa, JavaScript được sử dụng để lập trình không đồng bộ.
TypeScript đồng bộ hay không đồng bộ?TypeScript hiện hỗ trợ các chức năng không đồng bộ cho các công cụ có hỗ trợ riêng cho trình tạo ES6, e. g. Nút v4 trở lên. |