Когда кто-то говорит об асинхронности - всегда появляется машина состояний.
Хорошо если нуден только один коллбек, но если внутри коллбека появляются еще 
коллбеки, то становится сложно... Не знаю как 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

Ответить