https://kotlinlang.org logo
#russian
Title
# russian
l

lewik

03/29/2019, 10:09 AM
Так а что мне с этим контекстом то делать? @gildor @altavir
a

altavir

03/29/2019, 10:10 AM
Пока ничего, пишите все в Default. Потом по ходу можно доразобраться, когда на первые грабли наступите.
Стартуете весь процесс при помощи
GlobalScope.launch{}
(только GlobalScope не надо использовать больше одного раза, об этом у Елизарова есть), а дальше работаете в нем, не думая про контексты.
l

lewik

03/29/2019, 10:11 AM
А что за Scope ?
a

altavir

03/29/2019, 10:12 AM
Ну тут надо классика читать: https://medium.com/@elizarov/structured-concurrency-722d765aa952
Но если хотите попробовать, то можете на первом этапе игнорировать и работать в одном скоупе. Скоупы важны когда надо ошибки обрабатывать
g

gildor

03/29/2019, 10:19 AM
А что с ним делать? в официальном гайде показны простые примеры, как передавать туда диспатчер, вопрос же в конкретном кейсе
l

lewik

03/29/2019, 10:22 AM
Скоуп для того, чтобы понять какие еще корутины отменять если я отменил отду из них?
a

altavir

03/29/2019, 10:23 AM
в том числе
Там несколько шире возможности, но в основном - да
l

lewik

03/29/2019, 10:23 AM
if the scope fails with an exception or is cancelled, all the children are cancelled, too
a

altavir

03/29/2019, 10:24 AM
да
l

lewik

03/29/2019, 10:24 AM
Если упадет одна из корутин?
Что значит скоуп упал?
a

altavir

03/29/2019, 10:24 AM
Значит если в скоупе что-то сломалось, то сам скоуп автоматом ломается и отменяет все что там еще работает
coroutineScope{}
l

lewik

03/29/2019, 10:27 AM
Спсб
Теперь я всегда дожен явно указать скоуп при старте корутины?
a

altavir

03/29/2019, 10:27 AM
или
superviserScope{}
, но про него отдельно почитать доку
Корутина наследует скоуп от родительской корутины автоматом. Надо указывать только у корня.
Или если он явно меняется
l

lewik

03/29/2019, 10:28 AM
По умолчанию будет родительский скоуп? Почему несколько GlobalScope не надо?
g

gildor

03/29/2019, 10:37 AM
несколько GlobalScope?
l

lewik

03/29/2019, 10:37 AM
"Стартуете весь процесс при помощи
GlobalScope.launch{}
(только GlobalScope не надо использовать больше одного раза, об этом у Елизарова есть)"
a

altavir

03/29/2019, 10:44 AM
Ну вот тут лучше почитать Елизарова, но если кратко, то вы в этом случае теряете плюсы structured concurrency.
l

lewik

03/29/2019, 10:58 AM
"Structured Concurrency" - ах вот как это называется)))
3 Views