я так понял, ты хочешь сделать так: mySubject: Subject<Void> – отвечает за нажатие кнопки myData: Observable<Data> – отвечает за нужные тебе данные и ты хочешь по нажатию на кнопку что-то делать с данными?
тогда можно сделать Observable.combineLatest(mySubject.asObservable(), myData) { _, data in или mySubject.withLatestFrom(myData) { data in в зависимости от того, что тебе больше подходит
во, тут вступает .flatMap)) Observable.combineLatest(mySubject.asObservable(), myData) .flatMap { _, data in request(data) } .map { newData in // делаешь ченить с data }