在我定义的数据类中, 'name'在整个mongo集合中必须是唯一的: @Document data class Inn(@Indexed(unique = true) val name: String, val description: String) { @Id var id: String = UUID.randomUUID().toString() var intro: String = "" } 所以在服务中,如果有人再次传递相同的名字,我必须捕获意外的异常。 @Service class InnService(val repository: InnRepository) { fun create(inn: Mono<Inn>): Mono<Inn> = repository .create(inn) .onErrorMap( DuplicateKeyException::class.java, { err -> InnAlreadyExistedException("The inn already existed", err) } ) } 这是好的,但如果我想添加更多的信息,如"The […]
在kotlin上开发一个android应用程序。 我需要建立一个系统,以便能够从一个实时队列中进行工作(并观察流中的工作结果)。 但是我也必须能够根据像networkIsAvailable (Observable<Boolean>)这样的一对外部因素(也是以流的形式出现)切换“队列处理”。 我不能使用Observable.fromIterable()因为这会立即创建迭代,这个队列将会调整,并且项目可能会被删除。 我需要一些可以完成项目的循环,检查以确保我们应该继续前进,然后弹出队列中的第一项并执行此操作。 我不确定如何在订阅中做这样的循环? 队列也可以是空的,当切换开启时,事情应该重新开始。 也许我应该推出这个决定(关于是否处理队列中的下一个项目)到Subject<Boolean>? 然后订阅那个重新启动过程的主题? 例子: 打开—-处理队列顶部,处理队列顶部(先前被轮询掉)—关闭 – 不再处理 再次开启 – 队列进程顶部,队列空 – 停止 将项目添加到队列 – 进程 – 停止队列空 打开处理 – 将项目添加到队列 – 直到它重新打开时才进行处理 打开 – 处理顶部项目
我想在Kotlin.js中使用Redux / React ,但是我只发现Android的Redux / React库(如redux-kotlin )。
在连接到蓝牙设备的应用程序中,我正在使用下面的函数使用RxKotlin: private fun startBluetoothPair(device: BluetoothDevice) { Observable.just(device) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .map { var uuid: UUID = BLUETOOTH_UUID var socket = it.createRfcommSocketToServiceRecord(uuid) socket.connect() return socket } .subscribe { // Do something with the BluetoothSocket } } 这个函数应该简单地连接到背景上的蓝牙设备,然后用套接字(再次在mainthread中)做一些事情。 然而, map无法处理return socket部分,告诉我有一个Type mismatch ,它发现一个BluetoothSocket它需要一个Unit 。 这里怎么了? 我认为地图应该能够推断返回类型。
在ReactiveUI中,我们可以使用whenAny()从property或一组属性创建observable。 我怎样才能在Kotlin中实现类似的功能?