Skip to content

Latest commit

 

History

History
71 lines (47 loc) · 3.69 KB

4.1.4.4 Operators.md

File metadata and controls

71 lines (47 loc) · 3.69 KB

Операторы

Полный список Publisher Operators от Apple

Операторы с шариковыми диаграммами

Zip, CombineLatest, Map, Filter with interactive vizualization

Последовательные операторы

  • .first, .first(where:)
  • .last, .last(where:)
  • .output(at:), .output(in:)
  • .count
  • .contains, .contains(where:)
  • .allSatisfy
  • .reduce

Controlling Timing операторы

  • delay -

  • debounce - операция фильтрации. При получении значения делается пауза в заданный интервал времени и отправляется последнее и единственное значение. Если в заданный интервал приходит новое значение, то отсчет паузы возобновляется

    Пример: Панель поиска, где пользователи могут вводить поисковые запросы. Если пользователь продолжает печатать в течение n периода, период ожидания возобновляется, гарантируя, что вызов API будет выполнен только после небольшой паузы в наборе текста.

  • throttle - операция фильтрации. Cобирает несколько результатов с течением времени и отправляет один результат, но делает это с фиксированными временными окнами

    Пример: Ккнопка, которую пользователи могут нажимать, вы хотите обрабатывать нажатия, но не допускать случайных множественных нажатий в быстрой последовательности. throttle гарантирует, что событие нажатия кнопки обрабатывается только один раз каждые 500 миллисекунд, независимо от того, сколько раз была нажата кнопка.

  • measure interval -

Объединяющие операторы

  • .prepend
  • .append
  • .switchToLatest
  • .merge(with:)
  • .combineLatest
  • .zip

TDB:

Методы:

.receive(on: DispatchQueue.main) - все, что влияет на UI, нужно делать в главном потоке. Вызывать перед .sink

.setFailureType(to: Error.self) - превращает Publisher<Bool, Never> в Publisher<Bool, Error>

.eraseToAnyPublisher() - чтобы был AnyPublisher<>, добавлять в конец


4.1.4.3 Convenience Publishers Theme | Back To iOSWiki Contents | 4.1.4.5 Subscriber Theme