Nodejs readline async đang chờ
Xử lý không đồng bộ là một trong những khía cạnh quan trọng nhất của ngôn ngữ JavaScript. JavaScript là ngôn ngữ đơn luồng, do đó, nó cần một cơ chế để xử lý các hành động như thực hiện các hoạt động tốn nhiều thời gian và có khả năng không đáng tin cậy như thực hiện lệnh gọi API REST, đọc tệp từ đĩa hoặc tương tác với đầu vào của người dùng Show Trong JavaScript, cơ chế được sử dụng là , xử lý hàng đợi gọi lại theo thứ tự từ mục cũ nhất đến mục mới nhất. Mỗi mục trong hàng đợi là một tin nhắn được xử lý hoàn chỉnh trước khi chuyển sang tin nhắn tiếp theo tiếp theo. Mỗi thông báo là một chức năng trả về phản hồi cho mã ở nơi khác trong ứng dụng. Các chức năng được sử dụng theo cách này được gọi là chức năng gọi lại Do các cuộc gọi lại, JavaScript có thể sử dụng một số kỹ thuật để khắc phục tính chất đơn luồng của nó để thực hiện xử lý không đồng bộ. Thật không may, một số kỹ thuật đó, Lời hứa JavaScript và RxJS Observables, buộc bạn phải giới thiệu ít nhất một cấp độ lồng nhau trong mã của mình. Điều đó làm cho mã khó đọc và khó bảo trì hơn May mắn thay, các phiên bản JavaScript gần đây đi kèm với một kỹ thuật bổ sung để làm việc với mã không đồng bộ. không đồng bộ và chờ đợi. Đó là một lựa chọn hoàn hảo khi bạn muốn chương trình của mình chặn đồng bộ trong khi một số hành động không đồng bộ được thực hiện, sau đó tiếp tục hoạt động sau khi hành động đó kết thúc Bài đăng này sẽ giới thiệu cho bạn các nguyên tắc cơ bản của async và await và cho bạn thấy các ví dụ cụ thể. Sau đó, bạn sẽ có cơ hội tạo một ứng dụng trong thế giới thực sử dụng async và đang chờ để thực hiện xử lý không đồng bộ Hiểu JavaScript không đồng bộ trước khi không đồng bộ và chờ đợiTrước khi bắt đầu với không đồng bộ và chờ đợi, thật hữu ích khi hiểu về các cuộc gọi lại, đây là một phần nền tảng của tất cả quá trình xử lý không đồng bộ JavaScript. Điều quan trọng là phải hiểu về Promise, thứ bổ sung khả năng cho vòng lặp sự kiện và quy trình gọi lại. Lời hứa được sử dụng phối hợp chặt chẽ với chức năng không đồng bộ và chờ đợi gọi lạiGọi lại là kỹ thuật cơ bản nhất, lâu đời nhất để chạy mã JavaScript không đồng bộ. Gọi lại là “một chức năng được truyền vào một chức năng khác dưới dạng đối số, sau đó được gọi bên trong chức năng bên ngoài để hoàn thành một số loại quy trình hoặc hành động. ” (MDN) Các cuộc gọi lại có một nhược điểm đáng kể khi chúng chạy đồng bộ. chúng chặn vòng lặp sự kiện cho đến khi chúng kết thúc và do đó có thể khiến các chương trình trở nên không phản hồi và xuất hiện trạng thái "đông cứng". Bạn có thể xem một ví dụ về điều này trong các hàm sử dụng thư viện yêu cầu đồng bộ hóa, thực thi đồng bộ Bạn có thể viết một hàm sử dụng gọi lại theo cách sau Hàm mkdir async-await 0 có tham số mkdir async-await 1, là một chuỗi chứa URL mà bạn muốn thực hiện yêu cầu HTTP và nhận mã trạng thái từ phản hồi. Tham số thứ hai là mkdir async-await 2, đây là một chức năng sẽ được thực thi sau khi mã trạng thái được truy xuấtHàm sử dụng API để đưa lệnh gọi mkdir async-await 3 và lệnh gọi hàm mkdir async-await 2 vào hàng đợi gọi lại sau thời gian được chỉ định làm tham số thứ hai của mkdir async-await 5. Bởi vì mkdir async-await 5 không đồng bộ, thân hàm mkdir async-await 0 được thực thi không đồng bộ và không chặn ngăn xếp JavaScript, được thực thi đồng bộlời hứaMột cách khác để thực thi mã không đồng bộ trong JavaScript là sử dụng Lời hứa. Promise là một đối tượng cung cấp proxy cho một giá trị sẽ được xác định dựa trên kết quả, nếu có, của một hành động không đồng bộ sẽ xảy ra sau đó. Một Promise cũng có một trạng thái, cho biết trạng thái của hoạt động Đoạn mã trên định nghĩa một hàm mkdir async-await 8 trả về một đối tượng Promise. Khi Lời hứa được trả về bởi hàm mkdir async-await 8 giải quyết, nó sẽ trả về mã phản hồi từ yêu cầu đến địa chỉ được chỉ định trong tham số mkdir async-await 1. Phương thức npm install readline-promise 1 của đối tượng Promise chỉ định những việc cần làm khi lời hứa được giải quyếtCả hai giải pháp đều tốt và tương đương nhau khi bạn muốn chạy một hành động không đồng bộ bằng cách sử dụng API bên ngoài như mkdir async-await 5, npm install readline-promise 3 hoặc npm install readline-promise 4. Thật không may, các giải pháp này không hoạt động tốt với các hành động không đồng bộ phụ thuộc vào các hành động khác, chẳng hạn như chờ người dùng nhập trước khi thực hiện một số logic có điều kiện dựa trên dữ liệu đã nhậpGhi chú. Nếu bạn muốn tìm hiểu thêm về các cuộc gọi lại, Lời hứa, vòng lặp sự kiện hoặc các tính năng JavaScript không đồng bộ khác, hãy xem các bài đăng được liệt kê trong phần Tài nguyên bổ sung bên dưới. Chúng là một phần của thư viện hướng dẫn toàn diện về JavaScript không đồng bộ Hiểu các từ khóa không đồng bộ và chờ đợiCác từ khóa không đồng bộ và chờ đợi đã được thêm vào đặc tả JavaScript trong bản phát hành ECMAScript 2017, phiên bản thứ 8 của đặc tả. Đây là một cải tiến đáng kể về khả năng lập trình không đồng bộ của JavaScript và được các nhà phát triển ở khắp mọi nơi tôn vinh Trong phiên bản thứ 9, ECMAScript 2018, một trình lặp không đồng bộ đã được giới thiệu. Tính năng mới này cho phép sử dụng từ khóa npm install readline-promise 5 trong vòng lặp npm install readline-promise 6không đồng bộTừ khóa npm install readline-promise 7 chỉ có thể được sử dụng với khai báo hàm. Nó cho biết môi trường thời gian chạy JavaScript (V8, Node. js hoặc Deno) rằng nó sẽ bọc thân hàm trong một Lời hứa. Lời hứa sẽ được trả về bởi hàm thay vì giá trị câu lệnh trả về; Hai hàm sau trả về đầu ra tương đương. một đối tượng Hứa hẹn được giải quyết bằng mã trạng thái của yêu cầu GET được gửi tới địa chỉ được cung cấp trong tham số mkdir async-await 1Nếu bạn muốn hàm npm install readline-promise 9 trả về từ chối hàm npm install readline-promise 7, hãy sử dụng câu lệnh node -r esm start.js 1Hàm npm install readline-promise 7 không cần trả về giá trị; . Khi đó, nó tương đương với việc giải quyết npm install readline-promise 9 mà không có giá trịHàm node -r esm start.js 4 sẽ không phát ra bất kỳ dữ liệu nào khi Lời hứa của nó được giải quyết, nhưng trạng thái Lời hứa sẽ thay đổi thành đã hoàn thành hoặc bị từ chối. Bằng cách kiểm tra trạng thái Promise, chương trình có thể xác định xem hoạt động không đồng bộ có thành công hay khôngchờ đợiTừ khóa npm install readline-promise 5 chỉ có thể được sử dụng với đối tượng Promise. Nó thông báo cho môi trường thời gian chạy JavaScript rằng nó sẽ tạm dừng thực thi chương trình cho đến khi Promise được liên kết giải quyết. Một hạn chế khác là chỉ có thể sử dụng npm install readline-promise 5 bên trong hàm npm install readline-promise 7Để buộc thời gian chạy JavaScript giữ thực thi chương trình cho đến khi Lời hứa giải quyết và cung cấp một giá trị, hãy chèn từ khóa npm install readline-promise 5 trước lời gọi Lời hứaĐể xử lý từ chối Promise, hãy đặt câu lệnh npm install readline-promise 5 vào khối Choose an option and press Enter(4) ExitYour choice:0 Một cách khác để khai báo một hàm không đồng bộ nơi chứa logic là gọi nó sau khi nó được khởi tạo. Ví dụ: bạn có thể gói mã của mình trong một hàm không đồng bộ ẩn danh và gọi nó ngay lập tức Giờ đây, bạn đã được ôn tập nhanh về cách hoạt động của quá trình xử lý không đồng bộ trong JavaScript và đã được giới thiệu về các từ khóa npm install readline-promise 7 và npm install readline-promise 5, bạn có thể có một số kinh nghiệm khi sử dụng các công cụ này trong tình huống thực tếTrong hướng dẫn này, bạn sẽ tạo một ứng dụng bảng điều khiển với menu dòng lệnh tương tác. Đó là mã mà bạn có thể sử dụng lại trong các dự án bảng điều khiển của mình, chẳng hạn như các công cụ giao diện dòng lệnh (CLI) Trong khi bạn đang xây dựng ứng dụng menu, hướng dẫn này sẽ cho bạn thấy các khía cạnh của từ khóa npm install readline-promise 7 và npm install readline-promise 5. Bạn sẽ sử dụng chúng để tạo các hàm trả về Lời hứa và gọi sự chờ đợi đồng bộ để Lời hứa giải quyếtMã trong bài đăng này sử dụng thư viện lời hứa đọc để đọc đầu vào dòng lệnh, vì vậy bạn cũng sẽ có được một số kinh nghiệm với nó. Thư viện này mở rộng Node. js bằng cách thêm một trình lặp không đồng bộ và các tính năng khác điều kiện tiên quyếtĐể hoàn thành các nhiệm vụ trong hướng dẫn này, bạn sẽ cần các công cụ sau
Để tận dụng tối đa bài đăng này, bạn cũng nên có kiến thức cơ bản về JavaScript Có một kho lưu trữ đồng hành chứa mã nguồn hoàn chỉnh cho dự án có sẵn trên GitHub Tài khoản Twilio — Mặc dù hướng dẫn này không bắt buộc, nhưng nếu bạn đăng ký tài khoản Twilio bằng liên kết này, bạn có thể nhận thêm khoản tín dụng $10 cho tài khoản của mình Thiết lập dự ánBạn có hai tùy chọn để thiết lập Nút. dự án js cho hướng dẫn này. Bạn có thể
Để sao chép kho lưu trữ đồng hành, hãy thực hiện các hướng dẫn dòng lệnh sau trong thư mục mà bạn muốn tạo thư mục gốc của dự án git clone https://github.com/maciejtreder/asynchronous-javascript.git Mã này bao gồm một số nhánh cung cấp mã minh họa cách sử dụng lệnh gọi lại JavaScript, Lời hứa, Đài quan sát RxJS và các tính năng JavaScript khác Để chỉ bắt đầu dự án menu dòng lệnh từ đầu, hãy thực hiện các hướng dẫn dòng lệnh sau trong thư mục mà bạn muốn đặt thư mục gốc của dự án mkdir async-await Bạn có thể tìm hiểu thêm về cách khởi tạo Node. js trong bài đăng này của Phil Nash của Twilio Cài đặt thư viện Choose an option and press Enter(4) ExitYour choice:5 bằng lệnh sau trong thư mục gốc của dự án hoặc bên dưới npm install readline-promise Xây dựng ứng dụngMở dự án trong IDE hoặc trình chỉnh sửa mã bạn chọn đang chờ (ing) đầu vào của người dùngĐể tạo điểm vào cho ứng dụng của bạn, hãy tạo điểm bắt đầu. js trong thư mục async-await và đặt mã JavaScript sau vào đó Đoạn mã trên nhập thư viện Choose an option and press Enter(4) ExitYour choice:5, thư viện này sẽ được sử dụng để thu thập đầu vào từ người dùng và chuyển nó vào chương trình dưới dạng đối tượng Promise. Việc khai báo hằng số Choose an option and press Enter(4) ExitYour choice:7 thiết lập một thể hiện của đối tượng Choose an option and press Enter(4) ExitYour choice:8 bằng cách sử dụng cấu hình gán đầu ra cho đầu ra tiêu chuẩn của hệ thống và lắng nghe đầu vào của người dùng thông qua đầu vào tiêu chuẩn, cả hai đều là bảng điều khiển Sau khi khởi tạo đối tượng Choose an option and press Enter(4) ExitYour choice:9, mã khai báo hằng số git clone https://github.com/maciejtreder/asynchronous-javascript.git 0. Đó là Bản đồ thể hiện các tùy chọn chương trình có sẵn để hiển thị trong menu. Cho đến nay, chỉ có một. "Lối ra". Bạn sẽ thêm nhiều tùy chọn hơn khi bạn tiến bộ trong quá trình viết ứng dụngHàm không đồng bộ git clone https://github.com/maciejtreder/asynchronous-javascript.git 1, là điểm vào của chương trình. Nó bắt đầu bằng cách xóa bảng điều khiển. Sau đó, nó lặp qua các thành phần của bản đồ git clone https://github.com/maciejtreder/asynchronous-javascript.git 0 và hiển thị các tùy chọn khả dụng trong bảng điều khiển. Sau khi hoàn thành, đã đến lúc chờ người dùng nhập dữ liệuTrong phần khai báo của hằng số git clone https://github.com/maciejtreder/asynchronous-javascript.git 3, đoạn mã yêu cầu người dùng tương tác bằng cách sử dụng phương thức git clone https://github.com/maciejtreder/asynchronous-javascript.git 4. Phương thức này trả về một Lời hứa sẽ giải quyết khi người dùng nhập đầu vàoBạn có thể sử dụng từ khóa npm install readline-promise 5 cùng với lời gọi phương thức này, điều này sẽ gây ra sự chờ đợi đồng bộ cho đầu vào của người dùng và đặt thông tin đầu vào của người dùng vào hằng số git clone https://github.com/maciejtreder/asynchronous-javascript.git 3. Nó hữu ích ở đây vì cho đến khi bạn có thông tin từ người dùng, bạn không biết phải làm gì tiếp theoBằng cách sử dụng từ khóa npm install readline-promise 5, bạn tránh được mức độ lồng nhau mà bạn sẽ phải sử dụng phương thức git clone https://github.com/maciejtreder/asynchronous-javascript.git 8 của đối tượng Promise. Bạn có thể tránh cuộc gọi bổ sung vì bạn đã khai báo hàm git clone https://github.com/maciejtreder/asynchronous-javascript.git 1 bằng cách sử dụng từ khóa npm install readline-promise 7Đầu vào của người dùng là một giá trị node -r esm start.js 1, vì vậy phương thức node -r esm start.js 2 chuyển đổi nó thành một số nguyên trước khi gán nó cho hằng số git clone https://github.com/maciejtreder/asynchronous-javascript.git 3. Ở cuối hàm, giá trị của git clone https://github.com/maciejtreder/asynchronous-javascript.git 3 được sử dụng trong câu lệnh node -r esm start.js 5 để xác định hành động cần thực hiện. Cho đến nay, có hainode -r esm start.js 6 kết thúc chương trình bằng cách gọi phương thức close của đối tượng Choose an option and press Enter(4) ExitYour choice:7, phương thức này sẽ xóa hàng đợi gọi lại và letNode. node -r esm start.js 8 lối ranode -r esm start.js 9 xử lý đầu vào bất hợp pháp. Nếu người dùng nhập một số nằm ngoài phạm vi hoặc bất kỳ đầu vào không hợp lệ nào khác, chức năng sẽ hiển thị thông báo trong bảng điều khiển. Sau đó, chương trình chờ xác nhận của người dùng và gọi hàm displayMenu theo cách đệ quyKiểm tra chức năng cơ bảnĐây là một điểm tốt để xem mọi thứ có hoạt động chính xác không Chạy chương trình bằng cách nhập Node sau. js lệnh CLI trong thư mục async-await node -r esm start.js Bạn sẽ thấy đầu ra sau trong cửa sổ giao diện điều khiển Choose an option and press Enter(4) ExitYour choice: Sau khi chọn tùy chọn 4 bằng cách nhập “4” và xác nhận lựa chọn của bạn bằng cách nhấn Enter, chương trình sẽ thoát Nếu bạn chưa theo dõi mã hóa và muốn bắt kịp bước này bằng cách sử dụng mã từ kho lưu trữ GitHub, hãy thực hiện các lệnh sau trong thư mục mà bạn muốn tạo thư mục dự án git clone https://github.com/maciejtreder/asynchronous-javascript.git Tăng cường chương trìnhChắc chắn bạn không muốn chương trình của mình chỉ có một lựa chọn. "Lối ra" Tạo một khoản tiền. js trong thư mục gốc của dự án và chèn mã JavaScript sau Đoạn mã trên giới thiệu chức năng không đồng bộ First operand: 3 0. Hàm trả về một đối tượng First operand: 3 1, giải quyết bằng một số được tạo ngẫu nhiên từ 0 đến 10Câu hỏi đặt ra là, tại sao hàm này trả về một giá trị npm install readline-promise 9 trong khi câu lệnh First operand: 3 3 gọi các phương thức trả về số nguyên? . nó báo cho bộ thực thi JavaScript gói phần thân hàm trong một ____11_______9 giải quyết với giá trị từ câu lệnh First operand: 3 3Hàm thứ hai, First operand: 3 7, được xuất từ tệp để bạn có thể sử dụng nó ngay từ đầu. js, nơi chứa điểm vào chương trình của bạn. Hàm xóa bảng điều khiển, chờ tạo các số ngẫu nhiên và thêm chúng. Trước khi hàm trả về, nó sẽ hiển thị các toán hạng và tổng của chúngLưu ý rằng khai báo hàm First operand: 3 7 được đặt trước từ khóa npm install readline-promise 7, vì vậy bạn có thể sử dụng npm install readline-promise 5 trong đó để “mở gói” đối tượng Promise được trả về bởi hàm First operand: 3 0. Nếu bạn không sử dụng npm install readline-promise 5, bạn sẽ nhận được một đối tượng Promise mà bạn vẫn cần gọi phương thức First operand: 2 3 để lấy giá trịLưu ý rằng hàm First operand: 3 7 không có câu lệnh First operand: 3 3. Điều này, cùng với npm install readline-promise 7 trong khai báo, chỉ ra rằng kiểu trả về của hàm là First operand: 2 7, một Lời hứa thông báo cho người gọi rằng một số hành động không đồng bộ đã được hoàn thành mà không cung cấp bất kỳ đầu ra nào của hoạt động đóThêm câu lệnh First operand: 2 8 sau vào đầu phần bắt đầu. tập tin jsThêm một tùy chọn mới vào menu bằng cách thay thế khai báo git clone https://github.com/maciejtreder/asynchronous-javascript.git 0 hiện tại bằng khai báo sauThêm First operand: 2 0 mới vào câu lệnh node -r esm start.js 5 bên trong hàm git clone https://github.com/maciejtreder/asynchronous-javascript.git 1Bây giờ, bất cứ khi nào người dùng chọn “1” từ menu, chương trình sẽ gọi hàm First operand: 3 7, đợi nó kết thúc với npm install readline-promise 5 và yêu cầu người dùng nhấn Enter để quay lại menu. Khi người dùng thực hiện thao tác này, hàm git clone https://github.com/maciejtreder/asynchronous-javascript.git 1 sẽ được gọi đệ quySau những sửa đổi đó, bạn bắt đầu. js sẽ trông giống như tệp này trong kho lưu trữ đồng hành Thử nghiệm ứng dụng nâng caoBây giờ bạn đã thêm một số chức năng vào ứng dụng, bạn có thể thực hiện một số thử nghiệm đáng giá Chạy chương trình với Node sau. lệnh js node -r esm start.js Chọn tùy chọn 1 từ menu và xác minh xem nó có hoạt động như mong muốn không. Đầu ra của bạn phải tương tự như sau, với các giá trị của toán hạng và tổng thay đổi theo hầu hết các lần lặp First operand: 3 Để đóng chương trình, nhấn Enter để quay lại menu và chọn tùy chọn “4” Mã cho đến thời điểm này nằm trong nhánh step18 của kho lưu trữ đồng hành Hiểu về cạm bẫy hiệu suất đang chờ đợiBạn đã có tính năng async-await dưới vành đai của mình, nhưng còn một điều nữa mà bạn cần lưu ý. Như bạn đã biết, npm install readline-promise 5 đồng bộ chờ một npm install readline-promise 9 giải quyết. Và nó thực sự làm, không có lòng thương xót. Đôi khi nó có thể làm tổn thươngTạo một tệp mới có tên sumSlow. js và đặt mã JavaScript sau vào đó Hàm này trả về một Lời hứa, sẽ giải quyết bằng một số được tạo ngẫu nhiên sau 3 giây. Để trì hoãn đầu ra, mã sử dụng hàm mkdir async-await 5, không đồng bộThêm chức năng sau vào dưới cùng của sumSlow. tập tin js Chức năng này rất giống với chức năng bạn đã triển khai trước đó. Logic bổ sung duy nhất là sử dụng First operand: 2 9 và mkdir async-await 00 để đo tốc độ chạy của chức năng nàyNhập hàm mkdir async-await 01 vào đầu. js bằng cách thêm câu lệnh sau vào đầu tệpThêm một mục mới vào bản đồ git clone https://github.com/maciejtreder/asynchronous-javascript.git 0Và một First operand: 2 0 mới trong câu lệnh node -r esm start.js 5 bên trong hàm git clone https://github.com/maciejtreder/asynchronous-javascript.git 1, điều khiển luồng chương trìnhChạy chương trình và chọn tùy chọn “2” từ menu. Kiểm tra xem hàm này cần bao nhiêu thời gian để trả về First operand: 2 Như bạn có thể thấy, chức năng cần hơn 6 giây để hoàn thành. Tại sao? Trong quá trình truy xuất toán hạng đầu tiên, bạn đã chặn chương trình một cách đồng bộ bằng từ khóa npm install readline-promise 5. Do đó, cuộc gọi thứ hai được bắt đầu sau 3 giây và mất thêm 3 giây nữa để giải quyếtĐiều này có thể dễ dàng sửa chữa. Thêm chức năng sau vào dưới cùng của sumSlow. tập tin js Sự khác biệt giữa mkdir async-await 01 và mkdir async-await 10 là cách bạn gọi những lời hứaBạn đã bắt đầu vòng đời của cả hai lời hứa cùng một lúc và sau đó bạn đã chặn chương trình bằng cách sử dụng từ khóa npm install readline-promise 5 để chờ kết quả. Nhờ đó, những lời hứa đó đang chạy song songViệc so sánh hai triển khai đó được mô tả trong sơ đồ bên dưới Điều chỉnh câu lệnh nhập từ. /sumSlow ngay từ đầu. js bằng cách thêm mkdir async-await 10 để nó trông giống như sauThêm mục mới vào bản đồ git clone https://github.com/maciejtreder/asynchronous-javascript.git 0Thêm mới một First operand: 2 0 mới vào câu lệnh node -r esm start.js 5 bên trong hàm git clone https://github.com/maciejtreder/asynchronous-javascript.git 1Sau những sửa đổi đó, bạn bắt đầu. tệp js sẽ trông như thế này Chạy chương trình và gọi chức năng bạn vừa thực hiện bằng cách chọn tùy chọn “3” từ menu. Trong bảng điều khiển, bạn sẽ thấy rằng thời gian đã trôi qua bằng khoảng một nửa so với lần triển khai đầu tiên First operand: 2 Các giá trị thực tế của bạn sẽ khác một chút so với số hiển thị ở trên, dựa trên thời gian thực sự cần hệ thống của bạn để thực hiện phép tính Mã cho đến thời điểm này là nhánh step19 trong kho lưu trữ đồng hành Tóm lượcBài đăng này cung cấp phần giới thiệu về cách xử lý không đồng bộ hoạt động trong JavaScript và cách gọi lại và Lời hứa cung cấp chức năng không đồng bộ. Nó cho bạn thấy cách các tính năng ngôn ngữ này hoạt động và sau đó mô tả cách các từ khóa npm install readline-promise 7 và npm install readline-promise 5 hoạt động với các tính năng đó để cung cấp quyền truy cập thuận tiện hơn và dễ đọc hơn vào quy trình xử lý không đồng bộTrong một dự án nghiên cứu điển hình, bạn đã thấy cách triển khai hệ thống menu dòng lệnh tương tác bằng cách sử dụng async, await và Promises. Bạn cũng đã thấy cách sử dụng thư viện readline-promise tài nguyên bổ sungĐể tìm hiểu về các nguyên tắc cơ bản của JavaScript liên quan đến xử lý không đồng bộ, hãy xem bài đăng JavaScript không đồng bộ. Hiểu các cuộc gọi lại Nếu bạn muốn tìm hiểu thêm về JavaScript Promise, hãy xem các bài viết sau JavaScript không đồng bộ. Giới thiệu về Lời hứa JavaScript Bạn cũng có thể muốn tìm hiểu về RxJS (ReactiveX JavaScript), một công cụ không đồng bộ tốt hơn cho một số tình huống lập trình JavaScript không đồng bộ. Giới thiệu ReactiveX và RxJS Observables Ngoài ra còn có các tài nguyên của bên thứ 3 là tài liệu tham khảo cần thiết cho các nhà phát triển JavaScript. Ở đây có một ít Tài liệu web MDN. Javascript — Mạng nhà phát triển Mozilla cung cấp một trang web tham khảo toàn diện về JavaScript, với các hướng dẫn và thông tin tham khảo Nút. js Docs — Nếu bạn đang viết JavaScript phía máy chủ, Node. tài liệu tham khảo js là một tài nguyên thiết yếu RxJS — Trang web cung cấp tài nguyên học tập và thông tin tham khảo cho RxJS, triển khai JavaScript của trình quan sát, các mẫu lặp cùng với lập trình chức năng với các bộ sưu tập Tôi sử dụng nhà điều hành nào? Bạn muốn tận hưởng niềm vui trong khi mài giũa kỹ năng lập trình của mình? TwilioQuest — Đánh bại các thế lực của các hệ thống cũ với cuộc phiêu lưu theo phong cách 16-bit này Tôi là Maciej Treder, hãy liên hệ với tôi qua contact@maciejtreder. com, https. //www. maciejtreder. com hoặc @maciejtreder trên GitHub, Twitter và LinkedIn |