filter은 Publisher의 인자값을 받아 Bool을 리턴하는 클로저를 가져요.

이 클로저에서 true를 리턴하면 Publisher의 값을 그대로 구독할 수 있지만,

false 리턴시 Output은 무시되고 .finished 완료이벤트를 받고 이벤트 스트림이 종료돼요.

기능

사용

Just([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  .filter({ justArray in
    if justArray.reduce(0, +) > 100 {
       return false
    } else {
      return true
    }
  })
  .sink { completion in
    print(completion)
  } receiveValue: { value in
    print(value)
  }
  .store(in: &cancellables)
  
  
// 결과
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
finished
Just([1, 2, 3, 4, 5, 6, 7, 8, 9, 10000])
  .filter({ justArray in
    if justArray.reduce(0, +) > 100 {
       return false
    } else {
      return true
    }
  })
  .sink { completion in
    print(completion)
  } receiveValue: { value in
    print(value)
  }
  .store(in: &cancellables)

// 결과
finished