与RxJava2中的switchMap运算符相反

时间:2018-10-10 21:09:19

标签: rx-java2

我拥有要订阅并启动自己的Observable的配置Observable,但是在收到配置更新后取消正在运行的Observable时遇到了问题。

我当时在考虑类似switchMap的运算符,但是相反,当源Observable中有新值时,我们正在取消订阅映射的Observable并订阅了一个新值

赞:

configuration.
    reverseSwitchMap {
        createMyObservable(it.somethingFromConfiguration) // this observable get's recreated for each configuration update
    }.subscribe {
        // here I'm receiving values from myObservable
    }

有没有可以帮助我解决这个问题的操作员?

2 个答案:

答案 0 :(得分:0)

我认为我过于复杂了,所以现在我创建的解决方案是:

private val disposable: Disposable? = null

fun startUpdates() {
    configuration.toObservable()
        .forEach { configuration ->
            disposable?.dispose
            disposable = MyObservable(configuration)
                .subscribe { //do something }
        }
}

现在就足够了,尽管如果有人找到更好的解决方案,我将保留这个问题。

答案 1 :(得分:0)

这正是switchMap的目的。

这应该有效:

import { ReferenceInput, AutocompleteInput } from "react-admin";
import { Field } from 'redux-form';

    <Field 
       {...this.props} 
       component={ReferenceInput} 
       source="id" 
       reference="buildings"
    >
      <AutocompleteInput source="ProjectName" />
    </Field>