suspendLazy

fun <T> suspendLazy(type: SuspendLazyMode = SuspendLazyMode.Atomic, initializer: suspend CoroutineScope.() -> T): SuspendLazy<T>

Use this like a lazy, but because operator getValue cannot be suspend, you'll have to invoke this object instead in a suspend context to receive the value.

Use when you want a lazy that is loaded via a suspend fun and you use it in a suspend fun which can tolerate loading the value on a miss.