Kotlin сопрограммы разработаны в соответствии с директивой «по умолчанию» . Это означает, что ваш API всегда должен предоставлять suspend fun
s, и пользователь, если и когда он действительно в этом нуждается, может легко обернуть их в async
.
Преимущество этого аналогично преимуществам холодный поток по отношению к горячий поток: функция приостановки активна только тогда, когда внутри нее находится управление. Когда он возвращается, он не оставил позади задачу, выполняющуюся в фоновом режиме.
Всякий раз, когда вы возвращаете Deferred
, пользователь должен начать беспокоиться о том, что произойдет, если ему не удастся дождаться результата. Некоторые пути кода могут его игнорировать, вызывающий код может получить исключение, и тогда в их приложении возникает утечка.