[返回目錄](https://hackmd.io/78LEM4nRQ_uB8zOu1muVWQ) # Combine 基礎語法 ## Publisher ![](https://i.imgur.com/VNZTtVx.png) ## Advanced Publisher ![](https://i.imgur.com/lHqfUTL.png) - Subject - PassthroughSubject - PassthroughSubject,不會對接收到的值進行保留,當訂閱開始後,他將監聽並響應接下來的事件。 - CurrentValue - CurrentValueSubject會去包裝和持有一個值,並在設置該值時發送事件並保留新的值。在訂閱發生的瞬間,會把當前的保存值發送給訂閱值。 - Schedule - .delay(for: .second(2), scheduler: RunLoop.main) 延後事件 - .debounce(for: .second(1), scheduler: RunLoop.main) 設置計時器, 事件第一次到來, 計時器啟動。 在計時器有效時間內,每次收到新值,就將計時器重置。直到沒有新的值,才會傳送最後一次事件的值 其他資源及參考 === - [Combine基礎](https://medium.com/ios-os-x-development/learn-master-%EF%B8%8F-the-basics-of-combine-in-5-minutes-639421268219) - [30 天了解 Swift 的 Combine: [06] More Publisher, Just, Future, Promise](https://www.hackingwithswift.com/quick-start/swiftui/how-to-wrap-a-custom-uiview-for-swiftui) - [Combine: what are those multicast functions for?](https://forums.swift.org/t/combine-what-are-those-multicast-functions-for/26677)