В Kotlin есть пакет для продолжений, но он помечен как экспериментальный. Нет никакой документации, кроме API, а также никаких руководств или примеров, которые я мог бы найти. Кто-нибудь знает, можно ли его уже использовать? Что может быть примером его использования?
Можно ли уже использовать продолжения в Kotlin? Есть примеры?
Ответы (2)
Интерфейс Continuation
является частью API поддержки сопрограмм в стандартной библиотеке. Вы можете начать изучение сопрограмм на странице документации или на kotlinx.coroutines репозиторий библиотеки, который содержит обширное программирование сопрограмм. гид.
Корутины являются экспериментальными в Kotlin 1.1 и 1.2, но был объявление о том, что они собираются стабилизироваться в версии 1.3.
Когда вы говорите «продолжения», вы на самом деле имеете в виду «сопрограммы». Продолжение — часть этой истории.
kotlin-coroutines-informal от JetBrains team — отличный ресурс, с которого можно начать работу с сопрограммами. Если вы хотите использовать их для асинхронного программирования на Android, обратите особое внимание на раздел обертывание обратных вызовов, которые предоставляет ваш существующий асинхронный API, превращая существующие вызовы функций Java в Kotlin suspend fun
s.
О статусе эксперимента см. ответ Романа Елизарова на этот вопрос. Вот основной момент:
Корутины Kotlin можно и нужно использовать в продакшене. Это было главной причиной официального выпуска их в Kotlin 1.1. Выпустив их, команда JetBrains взяла на себя обязательство поддерживать обратную совместимость в отношении любых изменений, которые вносятся в них в младших выпусках по мере их развития, позволяя людям безопасно опробовать их в сложных производственных приложениях.
Нет абсолютно никаких причин ждать 1.3, чтобы начать использовать сопрограммы. То, что вы напишете сегодня, будет работать в обозримом будущем без изменений, и, кроме того, будет очень легко переключиться с kotlinx.coroutines.experimental
на kotlinx.coroutines
после релиза. API уже очень стабильны, и большинство изменений теперь касаются каналов и участников.