2016-02-10 4 views
3

Я переключаюсь с RAC и хочу иметь повторный сетевой запрос, возвращая разные типы результатов в зависимости от API запроса.RxSwift повторное действие

Я хочу использовать интервал, но я не знаю, как совместить возвращаемые типы.

var loop: Observable<Element> { 
    return Observable<Int>.interval(5.0, scheduler: MainScheduler.instance).map { _ in 
     // Do network request and return Observable<Element> 
    } 
} 

Мне нужно вызвать Observerable.interval с типом Int - но return Observable. Как мне это сделать?

ответ

8

Использование flatMap:

var loop: Observable<Element> { 
    return Observable<Int>.interval(5.0, scheduler: MainScheduler.instance).flatMap { _ in 
     return networkRequest() // returns Observable<Element> 
    } 
} 
+0

Как остановить этот таймер? –

+2

Храните подписку в переменной и удаляйте ее, когда это не нужно, используя 'dispose()'. –

 Смежные вопросы

  • Нет связанных вопросов^_^