
Roman
07.12.2017
10:19:18

Руслан
07.12.2017
10:22:34
и отменять старый запрос при поступлении следующего все равно надо делать что-то типо drop

Roman
07.12.2017
10:24:40

Google

Roman
07.12.2017
10:25:24
А вот если это suspend fun request1(), то надо обернуть вызов в run {}
Примерно так:
run(coroutineContext) { try { api.request1() } catch (e: Exception) { null } }

Igor
07.12.2017
10:29:59

Roman
07.12.2017
10:30:21
Это было на kotlinconf
Упс, по ходу не run надо, а async.

Sergey8827
07.12.2017
10:32:33

Artem
07.12.2017
10:32:38

Roman
07.12.2017
10:33:04
Кстати очень не удачное название run. Очень часто конфликтует с kotlin.run.

Sergey8827
07.12.2017
10:33:19

Roman
07.12.2017
10:34:11

Artem
07.12.2017
10:36:42
Благодарю

Roman
07.12.2017
10:41:33

Sasha
07.12.2017
10:41:42

Google

Igor
07.12.2017
10:42:54
Да мне нужны не примеры, а где написано “что это обязательно”

Sasha
07.12.2017
10:45:03
Хз, я вообще по этому поводу ничего не видел.

Sergey8827
07.12.2017
11:04:00

Roman
07.12.2017
11:04:53
По rx я не спец, но zip кажется делает именно то, что нужно.

Sergey8827
07.12.2017
11:05:12

Roman
07.12.2017
11:05:18
Но надо защиту поставить от ошибок. Например обернув в Optional
Вообще zip по идее - это merge с предопредеенной функцией слияния.

Sergey8827
07.12.2017
11:14:22
https://stackoverflow.com/questions/38576106/rxjava-zip-with-priorities

Руслан
07.12.2017
12:21:07
https://habrahabr.ru/company/avito/blog/344146/

Глеб
07.12.2017
12:47:32

Sergey8827
07.12.2017
12:49:22
может при помощи Anko
doAsync {
var result = runLongTask()
uiThread {
toast(result)
}
}

Глеб
07.12.2017
12:49:59
Не, я же хочу корутины использовать
Избавиться от всех каллбеков и подобных конструкций

? animufag ?
07.12.2017
12:51:05
тут разве не залочится ui тред?

Глеб
07.12.2017
12:52:27
А, вот оно как.
А разве залочится? Вроде бы не должен, хотя.. Сейчас проверю

? animufag ?
07.12.2017
12:53:04
не, я сам не шарю. просто так кажется
ну тип await в blocking контексте – как ещё можно корутинами залочить тред

Google

Глеб
07.12.2017
12:54:36
А в каком контексте нужно вызывать тогда?
Хм, и правда лочится

? animufag ?
07.12.2017
12:56:25
ну, commonpool. но мне всегда ребята говорят, что я не прав и так все ядра можно забить, а нужно чтобы был специальный io контекст, но никто не предлагает готовых решений
так что commonpool и потом в ui результат использовать

Igor
07.12.2017
13:00:38
R.id.menuCopyHosts -> launch(UI) {
val file = File("/etc/hosts")
val stirngFromFile = run(CommonPool) { PrivacyPolictyAttribute.getStringFromFile(file) }
Utils.copyToClipboard(stirngFromFile, "...")
}

Глеб
07.12.2017
13:01:52
@angmarr спасибо!

Strashko
07.12.2017
13:22:37
Всем привет, подскажите пожалуйста, eсли я пишу на Kotlin Script, будет ли при запуске создаваться JVM?
И какие я могу использовать библиотеки с данным языком, например библиотека loadsh для JavaScript?

Sergey
07.12.2017
13:41:56
Kotlin Script это не тоже самое что Kotlin JS если че

Strashko
07.12.2017
13:49:11

Quantum Harmonizer
07.12.2017
13:56:15

Dzmitry
07.12.2017
14:38:50
лол, подскажите какой приправой посыпать проект - gradle 3.0.1 котлин и dagger2. одна активность, один компонент, один модуль, не заводится.

Руслан
07.12.2017
14:40:09

Marat
07.12.2017
14:40:18

Kirill
07.12.2017
14:40:34
Обидно.

Admin
ERROR: S client not available

Kirill
07.12.2017
14:41:14

Dzmitry
07.12.2017
14:41:19
Обидно.
Ошбка Error:Execution failed for task ':app:kaptDebugKotlin'.
> Internal compiler error. See log for more details
больше ничего. думаю что kapt не заводится.
у меня kapt 'com.google.dagger:dagger-compiler:2.5'
в проеуте подсмотрел каком-то

Google

Руслан
07.12.2017
14:42:19
1. Чат по Kotlin-Android: https://t.me/kotlin_mobile
2. Как задавать вопросы: https://kotlinby.github.io/kotlin-telegram/#как-задавать-вопросы

Strashko
07.12.2017
14:42:42
Что пишет хоть?
Да думал написать бота для постановки задач из чата....но чет не нравится идея JVM и то как его запускать

Sergey
07.12.2017
15:22:59
уже какой релиз подряд идеи с плагином котлина был, а до сих пор повторяется бага с тестами
когда в дата классе добавляешь новое поле, то junit runner в идее не видит его и крашется

Sereja
07.12.2017
15:28:28

Quantum Harmonizer
07.12.2017
16:40:21
Скоро начинается https://info.jetbrains.com/Kotlin-Webinar-December2017.html

Roman
07.12.2017
16:44:25

Igor
07.12.2017
16:47:38

Vitalii
07.12.2017
16:47:49
А где трансляция будет?
Надо зарегистрироваться, ссылку даст на gotowebinar.
Заранее только надо google chrome взять.

Igor
07.12.2017
16:48:14
И куда она ведет? Может кто расшарить или они уникальные?
Ставить ради этого хром - я конечно не буду ?

Roman
07.12.2017
16:49:05
Пишет, что ссылку пришлет на емайл.

Quantum Harmonizer
07.12.2017
16:50:04

Vitalii
07.12.2017
16:55:03
И в FF работает.
Ты в этом уверен? Мне сказал что-то типа, что your browser is not supported, please, use Google Chrome.

Quantum Harmonizer
07.12.2017
16:56:01

Руслан
07.12.2017
16:59:12
Хади вещает

Vitalii
07.12.2017
17:00:02
Запись будет через несколько дней — неделю.

Vadim
07.12.2017
17:00:21
Возникла беда беда
есть некая реализация со встроенными функциями
fun main() {
processStickyEvents<PeriodChangeEvent> { onPeriodChangeEvent(it) }
processStickyEvents<AccountsSelectEvent> { onAccountsSelectEvent(it) }
processStickyEvents<CategoriesSelectEvent> { onCategoriesSelectEvent(it) }
}
private inline fun <reified T : Any> processStickyEvents(lambda: (T) -> Unit) {
EventBus.getDefault().getStickyEvent(T::class.java)?.let { lambda(it) }
EventBus.getDefault().removeStickyEvent(T::class.java)
}
закинул log после private inline, всё сработало, но почему то сами методы такие как например в main - onPeriodChangeEvent тупо не вызывается.

Quantum Harmonizer
07.12.2017
17:00:41
реально, в FF звука нет

Ilias
07.12.2017
17:21:39
А трансляция вообще проходит?
The webinar is about to start

Quantum Harmonizer
07.12.2017
17:22:31

Google

Sergey8827
07.12.2017
19:48:56