У меня есть прототип уроков JavaScript-кодирования для маленьких детей (8-10 лет), который основан на анимации. Учебный скрипт позволяет своим пользователям программировать синхронно, например
draw(something);
wait(some time);
draw(something_else);
Синхронное программирование выглядит намного удобнее, чем обычная техника JavaScript, но за сценой стоит асинхронное / ожидание, и оно не застревает в браузере.
Вы можете попробовать, как это работает, на http://codepegs.com/ и найти объяснение на http://codepegs.com/cphelp.html (выделите Таймерные функции ).
Асинхронное ожидание очень сдерживающее. Можно сделать гораздо больше, но перед рефакторингом системы позвольте мне спросить, знаете ли вы о существующем решении для псевдосинхронного программирования на JavaScript, которое я мог бы использовать?
Я пытался искать, и ответы были как ни в коем случае. Вот почему я привел пример.
PS: Извините, я должен добавить пост-скриптум. Я попросил предложить более сложную реализацию. В принципе это было сделано год назад. Это было грубо, но это работает. Мне это не нравится по многим причинам, но я решил спросить, прежде чем начинать новый этап программирования.
Посмотрите, после того, как скрипт (или заклинание) завершил работу (асинхронно), он оставляет последовательность функций, которые должны быть выполнены вовремя, так или иначе. С таким списком можно многое сделать. Предположим, вы хотите отменить некоторые ожидающие функции или повторить их, возможно, что-то изменить и т. Д. Эта псевдосинхронная модель не очень сложна, но не так проста. Представьте, что вам нужна бесконечная анимация (это было реализовано, но неуклюже) и т. Д.