Cách xử lý các chức năng không đồng bộ khi bạn thực sự chỉ muốn mọi thứ được đồng bộ hóa


16

Tôi còn khá mới với NodeJS và tôi đang gặp khó khăn trong việc xoay quanh tính chất không đồng bộ của các chức năng khi tôi thực sự muốn một cuộc gọi đi theo cuộc gọi khác một cách đồng bộ.

Nói ví dụ tôi đang gọi phương thức dịch vụ web. Mỗi phương thức đều có chức năng gọi lại. Nhưng nếu tôi muốn gọi 10 người trong số họ theo một trình tự cụ thể thì sao? Tôi có thực sự cần phải xâu chuỗi / nhúng tất cả các chức năng trong cuộc gọi lại đầu tiên không? Điều gì xảy ra nếu lần thứ hai chuỗi hơi khác nhau?

Có bất kỳ mô hình thanh lịch để đối phó với các tình huống mà bạn thực sự muốn mọi thứ được đồng bộ?

Hay tôi nên thực sự buông bỏ kiểu lập trình này để làm quen với một lối suy nghĩ khác? Nếu đó là sự thật, có lẽ ai đó có thể chỉ cho tôi một ví dụ rõ ràng về chuỗi chức năng dài hơn bằng cách sử dụng các cuộc gọi lại ...


10 yêu cầu theo một trình tự cụ thể. Họ có độc lập với nhau không?
Jonas

1
Và lưu ý: Được liên kết trong một chuỗi không có nghĩa là nó không đồng bộ trừ khi mọi thứ được liên kết trong chuỗi đó.
Erik Reppen

Câu trả lời:


9

Mọi người thường sử dụng Step hoặc Async cho điều đó. Hãy xem họ, có rất nhiều hướng dẫn hay về họ, bạn sẽ thấy họ đến "với bản resque:"

http://dailyjs.com/2011/11/14/p phổ biến-control-stream /
http://dailyjs.com/2011/11/07/code-review/
http://howtonode.org/step-of- Nhạc trưởng

Đồng thời kiểm tra 2 câu trả lời sau:

/programming/6954588/what-is-the-best-control-flow-module-for-node-js
/programming/5265743/node-js-what-t kỹ thuật -are-there-for-write-clean-Simple-callback-code


Rất vui vì tôi có thể giúp!

1
Tôi chắc chắn đánh giá cao những liên kết bạn đã cung cấp!
Lonnie hay nhất
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.