Проблема здесь в том, что функция printMultipleString вызывает delay в цикле, что блокирует выполнение кода и делает его синхронным. Вместо этого вы можете использовать setTimeout для имитации задержки без блокировки основного потока выполнения.
Как вы можете переписать функцию printMultipleString:
async function printMultipleString(str) {
for (let i = 0; i < 20; i++) {
await new Promise(resolve => setTimeout(resolve, 100)); // Имитация задержки
printStringLog(str + ' ' + i);
}
}
Ruslan GoblinПрофи (918)
5 месяцев назад
Спасибо, теперь асинхронно выполняется.
Точно, основной поток был заблокирован, ведь в сишарпе я писал Thread.Sleep() и там основной поток не был заблокирован.
"i am raccoon 0"
"i am rabbit 0"
"i am raccoon 1"
"i am rabbit 1"
"i am raccoon 2"
"i am rabbit 2"
в сишарпе так работало а здесь нет, почему?