Як поводитися з асинхронними функціями, коли ви просто хочете, щоб речі синхронізувалися


16

Я досить новачок у NodeJS і мені важко обертати голову навколо асинхронного характеру функцій, коли мені дуже хочеться, щоб один дзвінок синхронізував інший.

Скажімо, наприклад, я закликаю методи веб-сервісу. Кожен метод має функцію зворотного виклику. Але що робити, якщо я хочу назвати 10 з них у певній послідовності? Чи дійсно мені потрібно зав'язати / вбудувати всі функції в перший зворотний виклик? Що робити, якщо вдруге ланцюг трохи відрізняється?

Чи є якісь витончені моделі для вирішення ситуацій, коли ви насправді хочете, щоб речі були синхронними?

Або я дійсно повинен відмовитися від такого роду програмувань, щоб звикнути до іншого способу мислення? Якщо це правда, можливо, хтось може вказати мені на чистий приклад більш тривалої ланцюга функцій за допомогою зворотних викликів ...


10 запит у певній послідовності. Вони незалежні від одного?
Йонас

1
І зауважте: пов'язане ланцюжком не означає, що це не асинхронізація, якщо все не пов'язано в цьому ланцюжку.
Ерік Реппен

Відповіді:


9

Люди зазвичай використовують для цього Step або Async . Перевірте їх, є багато приємних навчальних посібників про них, ви побачите, що вони приходять "на реск:"

http://dailyjs.com/2011/11/14/popular-control-flow/
http://dailyjs.com/2011/11/07/code-review/
http://howtonode.org/step-of- провідник

Також перевірте ці 2 відповіді:

/programming/6954588/what-is-the-best-control-flow-module-for-node-js
/programming/5265743/node-js-what-techniques -are-there-for-write-clean-simple-call-callback-code


Радий, що можу допомогти!

1
Я вдячний за вказане вами посилання!
Lonnie Best
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.