Bagaimana menangani fungsi asinkron ketika Anda benar-benar hanya ingin hal-hal disinkronkan

16

Saya cukup baru untuk NodeJS dan saya mengalami kesulitan membungkus kepala saya di sekitar fungsi asinkron ketika saya benar-benar ingin satu panggilan untuk mengikuti yang lain secara tersinkronisasi.

Katakan misalnya saya memanggil metode layanan web. Setiap metode memiliki fungsi panggilan balik. Tetapi bagaimana jika saya ingin memanggil 10 dari mereka dalam urutan tertentu? Apakah saya benar-benar perlu untuk rantai / embed semua fungsi di panggilan balik pertama? Bagaimana jika rantai kedua kali sedikit berbeda?

Apakah ada pola yang elegan untuk menghadapi situasi di mana Anda benar-benar ingin semuanya sinkron?

Atau haruskah saya benar-benar melepaskan pemrograman semacam ini agar terbiasa dengan cara berpikir yang berbeda? Jika itu benar, mungkin seseorang dapat mengarahkan saya ke contoh bersih dari rangkaian fungsi yang lebih panjang menggunakan callback ...

Thijs Koerselman
sumber
10 permintaan dalam urutan tertentu. Apakah mereka independen satu sama lain?
Jonas
1
Dan perhatikan: Tertaut dalam sebuah rantai tidak berarti itu bukan async kecuali semuanya terhubung dalam rantai itu.
Erik Reppen

Jawaban:

9

Orang biasanya menggunakan Langkah atau Async untuk itu. Lihat, ada banyak tutorial yang bagus tentang mereka, Anda akan melihat mereka datang "ke resque:"

http://dailyjs.com/2011/11/14/popular-control-flow/
http://dailyjs.com/2011/11/07/code-review/
http://howtonode.org/step-of- konduktor

Periksa juga 2 jawaban ini:

/programming/6954588/what-is-the-best-control-flow-module-for-node-js
/programming/5265743/node-js-what-technic -adalah-ada-untuk-menulis-bersih-sederhana-panggilan balik-kode

alessioalex
sumber
Senang saya bisa membantu!
1
Saya sangat menghargai tautan yang Anda berikan ini!
Lonnie Best