Когда кто-то говорит об асинхронности - всегда появляется машина состояний. Хорошо если нуден только один коллбек, но если внутри коллбека появляются еще коллбеки, то становится сложно... Не знаю как JS, да и вроде-бы в Перле этого нету, но вот в .Net есть элегантный способ "скрыть" машину состояний через yield return механизм. Я таким образом писал бота для Unity3D игры (там на каждый фреим давали управление, и бот в любом случае - машина состояний). Фактически - паттерн обещаний делает нечто похожее (ну кроме того, что он генерит дофига замыканий, тогда как yield return генерит одно, но большое).
Я себе использование этого механизма представляю так: http://www.elite-games.ru/conference/viewtopic.php?t=59266 Суббота, 28 декабря 2013, 22:42 +01:00 от Stanislaw Pusep <[email protected]>: >Promises pattern: >http://12devs.co.uk/articles/promises-an-alternative-way-to-approach-asynchronous-javascript/ > >суббота, 28 декабря 2013 г. пользователь Михаил Монашёв писал: >>Здравствуйте. >> >>Пытаюсь тут переключить голову с обычного программирования на >>асинхронное. Голове даётся это сложно. >> >>Пишу не на перле, а на ноде, но это не важно. Интересен сам принцип >>построения кода. Сейчас вот кажется правильным вместо >>последовательного вызова функций создавать последовательности событий, >>возникающие по окончании работы функции. А на события вешаются >>обработчики, аналогичные исходным функциям. Так получается избежать >>безобразного кода с кучей вложенных друг в друга колбэков. Но может >>есть подход более правильный? >> >>Или может даже более правильный вопрос: как голову переключить на >>асинхронное программирование? >> >>-- >>С уважением, >> Михаил mailto: [email protected] >> >>-- >>Moscow.pm mailing list >>[email protected] | http://moscow.pm.org >-- >Moscow.pm mailing list >[email protected] | http://moscow.pm.org -- Nick unnoun
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
