(+1) получилось через SetInterval реализовать, спасибо за подсказку, jk:). Но у этого языка нет будущего, я вам скажу: настолько неинтуитивное решение с этим setinterval(), что мне аж стыдно стало за коллег из веб-разработки. Это ж сколько костылей нагородили для обеспечения асинхронности, капец:)))
Ну "костыль" тут один, называется event loop, вся "асинхронность" в js происходит в рамках этого невидимого цикла. Воспользовавшись setinterval ты просто откладываешь выполнение кода на определённый срок, не замораживая цикл одной какой-то задачей и позволив выполняться другому js коду, в частности обработчикам для запросов вызванных click. Не сказал бы что это такая уж мудрёная концепция, скорее даже наоборот.