Метод экземпляра flatMap требует, чтобы String соответствовал ObservableConvertibleType - PullRequest
1 голос
/ 04 февраля 2020

Я получаю ниже ошибка сборки для RxSwift,

func testFlatMap() {

    let bag = DisposeBag()
    let subject = PublishSubject<String>.init()

    subject.flatMap({ (value) -> String in
            PublishSubject.just(value)
        }).subscribe(

        onNext: { value in
            print(value)
        }

    ).disposed(by: bag)

    subject.on(.next("Test"))
}

Метод экземпляра flatMap требует, чтобы 'String' соответствовал 'ObservableConvertibleType'

Чего мне не хватает?

1 Ответ

1 голос
/ 04 февраля 2020

Это проблема:

subject.flatMap({ (value) -> String in
    PublishSubject.just(value)
})

В первой строке вы сообщаете компилятору, что замыкание возвращает String, но flatMap требует, чтобы закрытие возвратило наблюдаемый тип.

Кроме того, к вашему сведению: a.flatMap { .just($0) } фактически не используется. Другими словами: aa.flatMap { .just($0) }

...