<HTML><BODY>Когда кто-то говорит об асинхронности - всегда появляется машина состояний.<br>Хорошо если нуден только один коллбек, но если внутри коллбека появляются еще коллбеки, то становится сложно... Не знаю как JS, да и вроде-бы в Перле этого нету, но вот в .Net есть элегантный способ "скрыть" машину состояний через yield return механизм. Я таким образом писал бота для Unity3D игры (там на каждый фреим давали управление, и бот в любом случае - машина состояний). Фактически - паттерн обещаний делает нечто похожее (ну кроме того, что он генерит дофига замыканий, тогда как yield return генерит одно, но большое).<br><br>Я себе использование этого механизма представляю так: <a href="http://www.elite-games.ru/conference/viewtopic.php?t=59266" data-mce-href="http://www.elite-games.ru/conference/viewtopic.php?t=59266">http://www.elite-games.ru/conference/viewtopic.php?t=59266</a><br><br><br>Суббота, 28 декабря 2013, 22:42 +01:00 от Stanislaw Pusep <creaktive@gmail.com>:<br>
<blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        <div id="">
        



    






        

        
        
        
        
        

        

        
        



<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
         
        <div id="style_13882669350000000733" class="mr_read__body">
                <base target="_self" href="https://e.mail.ru/">
                
                        <div id="style_13882669350000000733_BODY">Promises pattern:<span></span> <a href="http://12devs.co.uk/articles/promises-an-alternative-way-to-approach-asynchronous-javascript/" target="_blank">http://12devs.co.uk/articles/promises-an-alternative-way-to-approach-asynchronous-javascript/</a><br>
<br>суббота, 28 декабря 2013 г. пользователь Михаил Монашёв  писал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте.<br>
<br>
Пытаюсь   тут   переключить  голову  с  обычного  программирования  на<br>
асинхронное. Голове даётся это сложно.<br>
<br>
Пишу  не  на  перле, а на ноде, но это не важно. Интересен сам принцип<br>
построения    кода.    Сейчас    вот    кажется    правильным   вместо<br>
последовательного вызова функций создавать последовательности событий,<br>
возникающие  по  окончании  работы  функции.  А  на  события  вешаются<br>
обработчики,  аналогичные  исходным  функциям. Так получается избежать<br>
безобразного  кода  с  кучей вложенных друг в друга колбэков. Но может<br>
есть подход более правильный?<br>
<br>
Или  может  даже  более  правильный  вопрос: как голову переключить на<br>
асинхронное программирование?<br>
<br>
--<br>
С уважением,<br>
 Михаил                          mailto:<a target="_blank">postmaster@softsearch.ru</a><br>
<br>
--<br>
Moscow.pm mailing list<br>
<a target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</blockquote>
</div>
                        <div>-- <br>
Moscow.pm mailing list<br>
<a href="sentmsg?compose&To=moscow%2dpm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div>
                
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br>
<br>-- <br>Nick unnoun<br></BODY></HTML>