Size: a a a

Kotlin Community

2020 November 27

TH

Taras Hreshchyshyn in Kotlin Community
Привет. Есть вопрос: есть котлин флоу, который с базы данных отдает номера телефона, нужно этот номер мапить к контакту, а для получения контака нужно делать отдельный запрос в БД. Как это правильно сделать?
suspend getPhoneNumbers() : Flow<List<String» - номера телефонов
suspend findContact(phoneNumber: String): Contact - получение пользователя
В конце должно возвращаться: Flow<ContactWithNumber>.
Сейчас делаю просто мап для флов, только не уверен что правильное решение
источник

AL

Anton Lakotka in Kotlin Community
Taras Hreshchyshyn
Привет. Есть вопрос: есть котлин флоу, который с базы данных отдает номера телефона, нужно этот номер мапить к контакту, а для получения контака нужно делать отдельный запрос в БД. Как это правильно сделать?
suspend getPhoneNumbers() : Flow<List<String» - номера телефонов
suspend findContact(phoneNumber: String): Contact - получение пользователя
В конце должно возвращаться: Flow<ContactWithNumber>.
Сейчас делаю просто мап для флов, только не уверен что правильное решение
а почему-бы сразу не джойнить через SQL?
источник

TH

Taras Hreshchyshyn in Kotlin Community
сейчас нету такой возможности. Понимаю, что можно и так, но сейчас надо решить с флоу
источник

AL

Anton Lakotka in Kotlin Community
suspend getPhoneNumbers() : Flow<List<String»
ну и строго говоря, suspend тут не нужен. т.к. флоу холодный и можно непосредственно во время коллекта идти в базу данных.

но возможно у вас там эксепшены выбрасываются до начала коллекта флоу.
источник

TH

Taras Hreshchyshyn in Kotlin Community
Anton Lakotka
suspend getPhoneNumbers() : Flow<List<String»
ну и строго говоря, suspend тут не нужен. т.к. флоу холодный и можно непосредственно во время коллекта идти в базу данных.

но возможно у вас там эксепшены выбрасываются до начала коллекта флоу.
спасибо за замечание, исправлю
источник

TH

Taras Hreshchyshyn in Kotlin Community
Anton Lakotka
suspend getPhoneNumbers() : Flow<List<String»
ну и строго говоря, suspend тут не нужен. т.к. флоу холодный и можно непосредственно во время коллекта идти в базу данных.

но возможно у вас там эксепшены выбрасываются до начала коллекта флоу.
а, у меня не саспенд) В чате написал не правильно
источник

AL

Anton Lakotka in Kotlin Community
Taras Hreshchyshyn
сейчас нету такой возможности. Понимаю, что можно и так, но сейчас надо решить с флоу
ну тогда можно сделать так:

https://pl.kotl.in/flBMpc38E
источник

TH

Taras Hreshchyshyn in Kotlin Community
спасибо, попробую
источник

AD

Aleksey D. in Kotlin Community
интересно, чем продиктовано следующее разделение?
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-result/

getOrNull - метод
getOrElse - расширение
источник

AN

Alexander Nozik in Kotlin Community
Aleksey D.
интересно, чем продиктовано следующее разделение?
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-result/

getOrNull - метод
getOrElse - расширение
Что-то должно быть методом, чтобы можно было строить расширения
источник

D

Denys in Kotlin Community
Aleksey D.
интересно, чем продиктовано следующее разделение?
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-result/

getOrNull - метод
getOrElse - расширение
Наверное, если X можно выразить через что-то более простое - оно идёт в расширения.

getOrElse {} - это по факту надстройка над getOrNull() ?: {}
источник

VP

Vladimir Petrakovich in Kotlin Community
Denys
Наверное, если X можно выразить через что-то более простое - оно идёт в расширения.

getOrElse {} - это по факту надстройка над getOrNull() ?: {}
Дока говорит, что скорее наоборот)
источник

D

Denys in Kotlin Community
Vladimir Petrakovich
Дока говорит, что скорее наоборот)
Мм?
источник

AD

Aleksey D. in Kotlin Community
Alexander Nozik
Что-то должно быть методом, чтобы можно было строить расширения
ну а чем getOrNull лучше, чем result.value?
источник

D

Denys in Kotlin Community
Aleksey D.
ну а чем getOrNull лучше, чем result.value?
А чем result.value лучше? :)
источник

VP

Vladimir Petrakovich in Kotlin Community
Denys
Мм?
источник

AD

Aleksey D. in Kotlin Community
Denys
А чем result.value лучше? :)
он не требует написания метода?
источник

VP

Vladimir Petrakovich in Kotlin Community
Что интересно, на деле они реализованы совершенно независимо
источник

D

Denys in Kotlin Community
А, проглядел, что мы про резалт. Пардон. 🌚
источник

D

Denys in Kotlin Community
Aleksey D.
он не требует написания метода?
А если там throwable?
источник