Diferença entre RxSwift e flatMap
Não consigo entender a diferença entre map e flatMap no RxSwift. Nos exemplos e nos livros do playground RxSwift, o flatMap é usado como conversor de Observables que possui propriedade Observable interna.
No entanto, vejo flatMap sendo usado diretamente no Observable de tipos básicos. Por exemplo, para o código abaixo, os dois produzem a mesma saída. Alguém pode me ajudar a entender a diferença entre mapa e flatMap
struct Student {
let score:Int
}
let ryan = Student(score:80)
let student = PublishSubject<Student>()
let deneme = student.map({ val in
return Student(score: val.score+10)
})
deneme.subscribe(onNext: {
print("StudentMAP: \($0.score)")
})
let deneme2 = student.flatMap({ val -> Observable<Student> in
return Observable.of(Student(score: val.score + 10))
})
deneme2.subscribe(onNext: {
print("StudentFlatMAP: \($0.score)")
})
student.onNext(ryan)