相关疑难解决方法(0)

RxSwift地图和flatMap的区别

我无法理解map和flatMap在RxSwift中的区别.在RxSwift操场示例和书籍中,flatMap用作转换Observables,它具有内部Observable属性.

但是我看到flatMap直接用于基本类型的Observable.例如,对于下面的代码,它们都产生相同的输出.有人可以帮我理解map和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)
Run Code Online (Sandbox Code Playgroud)

swift rx-swift

6
推荐指数
3
解决办法
6305
查看次数

标签 统计

rx-swift ×1

swift ×1