Skip to content

Асинхронные действия

Иногда вам может потребоваться запустить несколько действий одновременно, в этом случае есть 2 пути:
1) Запустить сразу несколько скриптов.
2) Использовать метод async { ... }.

О втором мы здесь и поговорим, работает он очень просто.


Базовый функционал

async {
    //тут какая-то задача
}

Внутри async можно писать любые действия: спавнить нпс, использовать циклы и ветвления, короче говоря всё тоже, что и в простых скриптах. После запуска задача будет выполняться параллельно с основным скриптом.


Дополнительные возможности

Иногда может потребоваться остановить или продолжить остановленную асинхронную задачу из другой части скрипта, такое тоже возможно. Это очень полезно в связке с бесконечными циклами.

val task = async {
    //тут какая-то задача
}

task.stop() //остановить эту задачу

task.resume() //продолжить эту задачу

Остановить задачу можно только извне, не думаю, что есть необходимость делать это изнутри самой задачи.