Size: a a a

Kotlin Community

2020 February 06

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
выборка из 2к человек малорепрезентативна
а там всего 2к? так это небось меньше, чем JB опрос
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
а там всего 2к? так это небось меньше, чем JB опрос
да
источник

AE

Alexandr Emelyanov in Kotlin Community
в статье же написано
источник

AN

Alexander Nozik in Kotlin Community
не читал внимательно. Там ничего особо интересного. Мне интересно, когда нормальный тулинг для модулей будет. И главное интеграция с градлом нормальная
источник

VP

Vladimir Petrakovich in Kotlin Community
Ivan Sablin
Ребят, job инициализируется только после вызова onComplete в apply. Поему это так работает и как можно пофиксить, чтобы job была проинициализированна как можно раньше
Вообще тут можно job выкинуть и оставить только withContext(backgroundContext) { }. Результат будет тем же.
источник

IS

Ivan Sablin in Kotlin Community
Vladimir Petrakovich
Вообще тут можно job выкинуть и оставить только withContext(backgroundContext) { }. Результат будет тем же.
Так мне ее извне отменять нужно
источник

VP

Vladimir Petrakovich in Kotlin Community
Ivan Sablin
Так мне ее извне отменять нужно
Так в withContext в качестве this прилетает CoroutineScope, а её можно и отменить
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Так в withContext в качестве this прилетает CoroutineScope, а её можно и отменить
изнутри тут же. Утекать скоуп из скоупа - не хорошо
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
изнутри тут же. Утекать скоуп из скоупа - не хорошо
Хм, ну тогда создавать её руками и делать withContext(backgroundContext + job) { }
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Хм, ну тогда создавать её руками и делать withContext(backgroundContext + job) { }
А вот нафига, если можно вызвать launch(backgroundContext)  и получить джоб
источник

AN

Alexander Nozik in Kotlin Community
Посмотрел скриншот, await там какой-то бредовый
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
А вот нафига, если можно вызвать launch(backgroundContext)  и получить джоб
Ну кода примерно одинаково в общем-то
источник

AN

Alexander Nozik in Kotlin Community
нафига делать job  и тут же его суспендить? Как там отмену-то можно сделть?
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Ну кода примерно одинаково в общем-то
Ручное создание job - это сильный code smell
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Ручное создание job - это сильный code smell
Ну не то чтобы сильный, но соглашусь, что пихать это везде пожалуй не стоит.
Но если Job нужен сразу, вполне выход.
источник

VP

Vladimir Petrakovich in Kotlin Community
В данном случае проще всего вынести await() из apply { }, и делать его после присвоения. Если job - мутабельное поле, то через локальную переменную.
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Ну не то чтобы сильный, но соглашусь, что пихать это везде пожалуй не стоит.
Но если Job нужен сразу, вполне выход.
Не, именно сильный. В structured concurrency - это самый легкий способ сломать вложенность
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
В данном случае проще всего вынести await() из apply { }, и делать его после присвоения. Если job - мутабельное поле, то через локальную переменную.
да, но правда все равно не понятно, как отмену делать. Я бы сказал, что там вообще не должно быть никакого await, там надо вызывать onComplete у deferred, а еще лучше прямо внутри корутины
источник

АО

Алексей Овсянников in Kotlin Community
Ivan Sablin
Ребят, job инициализируется только после вызова onComplete в apply. Поему это так работает и как можно пофиксить, чтобы job была проинициализированна как можно раньше
Знаете, что я вам скажу... https://habr.com/ru/post/432942/
источник

АО

Алексей Овсянников in Kotlin Community
Конкретно вам нужно Избегайте использования ненужных async/await
источник