Combine - Operator(操作符)(一)
2021-11-23 本文已影响0人
盟主直播Libx
Debugger操作符 | 类型管理操作符 | 转换操作符
Debugger操作符
print - 打印所有消息,并且给消息加上前缀

breakpoint - 发送调试信号,打断点,在想要调试的闭包中返回 true

handlerEvents - 在发生事件时调用对应的闭包,可以自定义处理一些逻辑

类型管理操作符
switchToLatest - 接受多个publisher,只保留最后一个publisher,之前的publisher执行取消方法,在实际开发中,特别适合用于搜索框的实时搜索功能,去掉多余的网络请求。

eraseToAnyPublisher - 类型擦除,将复杂的publisher类型进行擦除,变成类型简单易读(一眼看到output类型)的,也会擦除PassthroughSubject和CurrentValueSubject的手动发送send方法。

转换操作符
map - 接受一个闭包,数组里的每个元素自动执行这个闭包,然后发送给下游

flatMap -
接受一个闭包,所有数组拉直,也就是二维数组,变成一维数组,下面例子就是1,2,3,4,5,6都执行该闭包

tryMap - 抛出错误,返回fail并且中止流程。

setFailureType - 指定当前publisher返回的错误,比如Just的失败类型为Never,通过sefFailureType可以指定当前Just的失败类型为LFError
merge - 可以合并2个publisher,但是要求output和error必须一致,如果error不一致,可以使用setFailureType指定一致

scan & tryScan - scan(第一次默认值,随后记录上次转换的结果),然后跟这次传递过来的值执行闭包
