JavaScript gọi hai chức năng tuần tự

Trong bài viết này, chúng ta sẽ cố gắng hiểu làm thế nào chúng ta có thể dễ dàng thực hiện nhiều lời hứa một cách tuần tự [lần lượt từng lời hứa] với một số kỹ thuật hoặc phương thức do JavaScript cung cấp

Trước tiên, chúng ta hãy nhanh chóng hiểu cách chúng ta có thể tạo một lời hứa bằng cách sử dụng cú pháp sau do JavaScript cung cấp

cú pháp. Cú pháp sau có thể được sử dụng để tạo lời hứa trong JavaScript

let promise = new Promise[[resolve, reject] => resolve[10]]

Bằng cách sử dụng cú pháp trên, chúng ta có thể tạo lời hứa thành công bằng cách giải quyết nó [có trạng thái đã giải quyết] hoặc từ chối nó [có trạng thái bị từ chối]

Thí dụ. Trong ví dụ này, chúng tôi sẽ tạo một lời hứa đơn giản chỉ để xem nó hoạt động như thế nào hoặc nó được thực hiện như thế nào

Javascript




GeeksforGeeks
5

GeeksforGeeks
6
GeeksforGeeks
7____18
GeeksforGeeks
9

GeeksforGeeks
0
GeeksforGeeks
1
GeeksforGeeks
2
GeeksforGeeks
3

GeeksforGeeks
6
GeeksforGeeks
5

GeeksforGeeks
6
GeeksforGeeks
7

GeeksforGeeks
8

đầu ra

GeeksforGeeks

Bây giờ chúng ta đã hiểu cách tạo một lời hứa, hãy nhanh chóng xem và hình dung cách chúng ta có thể thực hiện nhiều lời hứa một cách tuần tự

Sau đây là một số cách tiếp cận mà qua đó chúng ta có thể dễ dàng thực hiện nhiều lời hứa một cách tuần tự

JavaScript được biết đến với các cuộc gọi không chặn thông qua việc sử dụng các lệnh gọi lại, lời hứa và async/await. 1 Đôi khi, nhu cầu sẽ phát sinh để xử lý một tập hợp các cuộc gọi không chặn tuần tự hoặc song song

Thiết lập

Giả sử chúng ta cần thực hiện một tập hợp các lệnh gọi API. api giả của chúng tôi sẽ là một chức năng sẽ trả về một lời hứa sẽ giải quyết sau 1 giây

const apiEndpoints = ["first", "second", "third"];

const apiCall = endpoint => new Promise[resolve => setTimeout[resolve, 1000]];

Tiến trình song song

Trong trường hợp này, thứ tự thực hiện các lệnh gọi API không quan trọng, chúng ta chỉ cần biết khi nào chúng hoàn thành

GeeksforGeeks
0

Phương thức bản đồ được sử dụng trên mảng

GeeksforGeeks
2 và mỗi giá trị được thay thế bằng lời hứa
GeeksforGeeks
3 của chúng tôi. Khi mỗi lời hứa được giải quyết,
GeeksforGeeks
42 sẽ giải quyết

xử lý tuần tự

Trong trường hợp này, thứ tự thực hiện là quan trọng. Mỗi lệnh gọi API phải đợi lệnh trước đó quay lại

GeeksforGeeks
1

Phương thức rút gọn3 được sử dụng trên

GeeksforGeeks
2 để chúng ta có thể tận dụng bộ tích lũy giảm được truyền vào dưới dạng biến đầu tiên trong hàm gọi lại. Trong ví dụ này, chúng tôi đã đặt tên bộ tích lũy là
GeeksforGeeks
6. Vai trò của bộ tích lũy là chuyển giá trị trả về từ lần lặp trước sang lần lặp tiếp theo. Đối với lần lặp đầu tiên, một lời hứa đã giải quyết được sử dụng làm trình khởi tạo. Chúng ta có thể đã sử dụng bất kỳ giá trị nào cho bộ khởi tạo trong trường hợp này, nhưng nói chung, bộ khởi tạo phải cùng loại với bộ tích lũy

Đối với lệnh gọi lại reduce, chúng tôi chờ lời hứa

GeeksforGeeks
6 giải quyết và trả lại một
GeeksforGeeks
3, đó là một lời hứa. Lời hứa đó được chuyển sang lần lặp tiếp theo

JavaScript được biết đến với các cuộc gọi không chặn bằng cách sử dụng các cuộc gọi lại, lời hứa và không đồng bộ/chờ đợi. Đôi khi, nhu cầu sẽ phát sinh để xử lý một tập hợp các cuộc gọi không chặn tuần tự hoặc song song

Ảnh của Michael Dziedzic trên BaptSet Up

Giả sử chúng ta cần thực hiện một tập hợp các lệnh gọi API. api giả của chúng tôi sẽ là một chức năng sẽ trả về một lời hứa sẽ giải quyết sau 1 giây

GeeksforGeeks
2Xử lý song song

Trong trường hợp này, thứ tự thực hiện các lệnh gọi API không quan trọng, chúng ta chỉ cần biết khi nào chúng hoàn thành

GeeksforGeeks
3

Phương thức bản đồ được sử dụng trên mảng

GeeksforGeeks
2 và mỗi giá trị được thay thế bằng lời hứa
GeeksforGeeks
3 của chúng tôi. Khi mỗi lời hứa được giải quyết,
GeeksforGeeks
1 sẽ giải quyết

xử lý tuần tự

Trong trường hợp này, thứ tự thực hiện là quan trọng. Mỗi lệnh gọi API phải đợi lệnh gọi trước quay lại

GeeksforGeeks
4

Phương thức rút gọn được sử dụng trên

GeeksforGeeks
2 để chúng ta có thể tận dụng bộ tích lũy giảm được truyền vào dưới dạng biến đầu tiên trong hàm gọi lại. Trong ví dụ này, chúng tôi đã đặt tên bộ tích lũy là
GeeksforGeeks
6. Vai trò của bộ tích lũy là chuyển giá trị trả về từ lần lặp trước sang lần lặp tiếp theo. Đối với lần lặp đầu tiên, một lời hứa đã giải quyết được sử dụng làm trình khởi tạo. Chúng ta có thể đã sử dụng bất kỳ giá trị nào cho bộ khởi tạo trong trường hợp này, nhưng nói chung, bộ khởi tạo phải cùng loại với bộ tích lũy

Đối với lệnh gọi lại reduce, chúng tôi chờ lời hứa

GeeksforGeeks
6 giải quyết và trả lại một
GeeksforGeeks
3, đó là một lời hứa. Lời hứa đó được chuyển sang lần lặp tiếp theo

Chúng ta có thể chạy đồng thời hai chức năng trong JavaScript không?

Có, bạn có thể gọi hai Hàm JS trên một onClick . Sử dụng dấu chấm phẩy [';'] giữa cả hai chức năng.

Làm cách nào để thực thi các chức năng theo thứ tự trong JavaScript?

Nhiệm vụ là thực thi các chức năng theo thứ tự được xác định trong hàng đợi với sự trợ giúp của JavaScript. Có hai cách tiếp cận được thảo luận dưới đây. Cách tiếp cận 1. Khai báo các hàm và sử dụng phương thức push[] của mảng để đẩy các hàm trong mảng. Sau đó duyệt qua mảng và thực hiện từng chức năng một .

Làm cách nào để thực hiện cuộc gọi đồng bộ trong JavaScript?

Async/Await là một cú pháp mới để viết mã không đồng bộ trong JavaScript nhằm làm cho mã không đồng bộ hoạt động theo cách đồng bộ. Từ async được sử dụng trước một chức năng có nghĩa là một chức năng luôn trả về một lời hứa.

Làm cách nào để gọi các hàm lần lượt trong JavaScript?

khi[]. then[] để gọi họ lần lượt.

Chủ Đề