НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1298 of 1310 menu

Функция async

Функция async является частью Kotlin Coroutines и позволяет запускать асинхронные операции. Она возвращает объект типа Deferred<T>, где T - тип возвращаемого значения. Для получения результата используется метод await. Функция запускает новую корутину и возвращает её результат в виде отложенного значения.

Импорт

import kotlinx.coroutines.async import kotlinx.coroutines.runBlocking

Синтаксис

fun <T> CoroutineScope.async( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> T ): Deferred<T>

Пример

Простой пример использования async для асинхронного выполнения:

import kotlinx.coroutines.* fun main() = runBlocking { val deferred = async { delay(1000) "Hello World" } println(deferred.await()) }

Результат выполнения кода:

String "Hello World"

Пример

Параллельное выполнение нескольких асинхронных операций:

import kotlinx.coroutines.* fun main() = runBlocking { val deferred1 = async { delay(1000) 10 } val deferred2 = async { delay(1500) 20 } println(deferred1.await() + deferred2.await()) }

Результат выполнения кода:

Int 30

Пример

Использование разных контекстов выполнения:

import kotlinx.coroutines.* fun main() = runBlocking { val deferred = async(Dispatchers.IO) { // Долгая операция delay(2000) 42 } println(deferred.await()) }

Результат выполнения кода:

Int 42

Пример

Обработка исключений в асинхронных операциях:

import kotlinx.coroutines.* fun main() = runBlocking { val deferred = async { try { delay(1000) throw RuntimeException("Error occurred") } catch (e: Exception) { "Caught exception: ${e.message}" } } println(deferred.await()) }

Результат выполнения кода:

String "Caught exception: Error occurred"

Смотрите также

  • функцию launch,
    которая запускает корутину без возврата результата
  • функцию await,
    которая ожидает результат асинхронной операции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить