старт?await, а остановиться только на их создании (task = asyncio.create_task(waste_time()), то вывод вообще будет таким:Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
0.0021376609802246094await asyncio.sleep(2)?await?await asyncio.sleep(2) работает таким образом: sleep(), там она стопится, т.е. входит в состояние ожидания результата, контроль выполнения возвращается в функцию waste_time(), откуда и была вызвана sleep(), а оттуда обратно в main() и далее в цикле он продолжает делать то же самое (в waste_time() - в sleep() - обратно в waste_time() - обратно в main()). По прошествии 2 секунд, внутренний механизм asyncio мониторинга состояния корутин уведомляет событийный цикл, что первая корутина получила ответ (иначе говоря, завершила свою работу), событийный цикл после этого передает контроль выполнения обратно в функцию, откуда была вызвана первая корутина, т.е. в waste_time(),, она продолжает свое выполнение и выводит на печать "End work!". Сразу за ней событийный цикл получил такие же уведомления от остальных корутин (через механизм мониторинга, само собой), ибо они тоже закончили свое выполнение (все почти одновременно), и с ними повторяется такой же процесс. Поэтому после первой корутины мы также видим подряд вывод всех остальных - "End work!".await, в цикле в функции main(), из-за того что не находится в таске - не участвует в очереди, поэтому она просто встает в ожидание результата корутины, вместо того, чтобы переключится на другие.
data:image, но использовалxlink:hrefи у меня высвечивалось ошибка типа "invalid image source" вместо SVG. Но сейчас я использовал простоhrefи все заработало. Спасибо вам.Но вы говорите, что анимация работать не будет, тем не менее, здесь она работает - https://github.com/vaaski/vaaski/tree/master