async

fun <T> async(
    context: CoroutineContext = DefaultDispatcher,
    start: CoroutineStart = CoroutineStart.DEFAULT,
    parent: Job? = null,
    block: suspend CoroutineScope.() -> T
): Deferred<T>
(source)

Creates new coroutine and returns its future result as an implementation of Deferred.

The running coroutine is cancelled when the resulting object is cancelled.

The context for the new coroutine can be explicitly specified. See CoroutineDispatcher for the standard context implementations that are provided by kotlinx.coroutines. The context of the parent coroutine from its scope may be used, in which case the Job of the resulting coroutine is a child of the job of the parent coroutine. The parent job may be also explicitly specified using parent parameter.

If the context does not have any dispatcher nor any other ContinuationInterceptor, then DefaultDispatcher is used.

By default, the coroutine is immediately scheduled for execution. Other options can be specified via start parameter. See CoroutineStart for details. An optional start parameter can be set to CoroutineStart.LAZY to start coroutine lazily. In this case,, the resulting Deferred is created in new state. It can be explicitly started with start function and will be started implicitly on the first invocation of join or await.

Parameters

context - context of the coroutine. The default value is DefaultDispatcher.

start - coroutine start option. The default value is CoroutineStart.DEFAULT.

parent - explicitly specifies the parent job, overrides job from the context (if any).*

block - the coroutine code.