Size: a a a

Kotlin Community

2020 January 27

BV

Boris Vanin in Kotlin Community
В тестах там или типа того
источник

ДК

Дима Красилов in Kotlin Community
Boris Vanin
Может просто рядом создать джава-файл и в нем заюзать свой котлин класс?
Гениально. Спс
источник

QH

Quantum Harmonizer in Kotlin Community
Делаю адаптер, заворачивающий блокирующий API в Deferred. Фабрика, которая его возвращает, должна быть экстеншеном к скоупу или суспендом, который сам вытащит скоуп?
источник

AM

Andrew Mikhaylov in Kotlin Community
Quantum Harmonizer
Делаю адаптер, заворачивающий блокирующий API в Deferred. Фабрика, которая его возвращает, должна быть экстеншеном к скоупу или суспендом, который сам вытащит скоуп?
Суспенд же не умеет сам вытаскивать скоуп, только свой сделать.
источник

AM

Andrew Mikhaylov in Kotlin Community
Но по идее экстеншном на скоупе (или просто принимать параметром скоуп) должна быть не фабрика, а сам адаптер.
источник

QH

Quantum Harmonizer in Kotlin Community
Так, но если я вызываю такую фабрику из suspend-функции, то Ambiguous coroutineContext
источник

QH

Quantum Harmonizer in Kotlin Community
мда, принимать скоуп ресивером суспенд-функции было глупо
источник

AM

Andrew Mikhaylov in Kotlin Community
Вот да, это хороший маркер, что что-то не то.
источник

QH

Quantum Harmonizer in Kotlin Community
хммм, выходит довольно-таки плохой API
источник

AM

Andrew Mikhaylov in Kotlin Community
Как по мне, тут должен быть
suspend fun smpl(...) = coroutineScope {
источник

AM

Andrew Mikhaylov in Kotlin Community
И глобалы сразу пропадают
источник

QH

Quantum Harmonizer in Kotlin Community
Я понимаю, что вопрос поставлен плохо, но мне, не пользователю structured concurrency, хочется сделать удобный API для корутин)
источник

AN

Alexander Nozik in Kotlin Community
Соглашение по корутинам такое: fun CoroutineScope.doAsync(): Deferred. Это именно соглашение, но оно в доке прописано
источник

AM

Andrew Mikhaylov in Kotlin Community
Ещё можно, кстати, нашкрябать саспенд-экстеншнов на эти ваши cell/coll/row/...
🌚
источник

QH

Quantum Harmonizer in Kotlin Community
Andrew Mikhaylov
Ещё можно, кстати, нашкрябать саспенд-экстеншнов на эти ваши cell/coll/row/...
🌚
Годнота, спасибо ❤️
только скоуп надо где-то достать
источник

AM

Andrew Mikhaylov in Kotlin Community
Quantum Harmonizer
Годнота, спасибо ❤️
только скоуп надо где-то достать
Так я вон выше писал, заверни всё тело саспенд-функции в coroutineScope, и будет тебе скоуп на функцию.
источник

AM

Andrew Mikhaylov in Kotlin Community
Но да, для этого тебе мультиресиверы не помешали бы... :)
источник

BV

Boris Vanin in Kotlin Community
Andrew Mikhaylov
Но да, для этого тебе мультиресиверы не помешали бы... :)
Эх
источник
2020 January 28

U

Unat in Kotlin Community
Quantum Harmonizer
хммм, выходит довольно-таки плохой API
Оччень странно выглядит
источник

U

Unat in Kotlin Community
Quantum Harmonizer
Делаю адаптер, заворачивающий блокирующий API в Deferred. Фабрика, которая его возвращает, должна быть экстеншеном к скоупу или суспендом, который сам вытащит скоуп?
К слову, с моей колокольни, идея тоже так себе. Deferred достаточно редко нужен в API, но это у меня такой опыт - как только выкидываешь их и меняешь на suspend'ы, то сразу становится лучше.
источник