前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Combine-Operator

Combine-Operator

作者头像
YungFan
发布2020-04-30 18:11:01
4930
发布2020-04-30 18:11:01
举报
文章被收录于专栏:学海无涯学海无涯

默认情况下,订阅某个 Publisher,Subscriber 中的InputFailure要与 Publisher OutputFailure类型相同,但实际开发中往往是不同的,此时就需要借助Operator进行转换Operator 遵守 Publisher 协议,负责从数据流上游的 Publisher 订阅值,经过转换生成新的 Publisher 发送给下游的 Subscriber。

Publisher,Operator 和 Subscriber 三者组成了数据流从发布,转换,到订阅的完整链条。

简单案例

Publisher 发布的值为Int类型的520,最后订阅以后输出String类型的值I Love You。中间通过map这个 Operator 进行转换。

代码语言:javascript
复制
let _ = Just(520)
    .map { value -> String in
        return "I Love You"
}
.sink { receivedValue in
    print("最终的结果:\(receivedValue)")
}

/* 输出
最终的结果:I Love You
*/

内置Operator

Operator 非常多,其中很多与 Swift 标准库的函数非常像,比如map, fliter等。Operator可以通过链式方式进行调用,在后面的案例中会进行讲解。下面按照功能对 Operator 进行了分类。

  • 转换
代码语言:javascript
复制
scan
tryScan
setFailureType
map
tryMap
flatMap
  • 过滤
代码语言:javascript
复制
compactMap
tryCompactMap
replaceEmpty
filter
tryFilter
replaceError
removeDuplicates
tryRemoveDuplicates
  • 合规
代码语言:javascript
复制
collect
reduce
tryReduce
ignoreOutput
  • 数学运算
代码语言:javascript
复制
max
tryMax
count
min
tryMin
  • 匹配
代码语言:javascript
复制
allSatisfy
tryAllSatisfy
contains
containsWhere
tryContainsWhere
  • 序列
代码语言:javascript
复制
firstWhere
tryFirstWhere
first
lastWhere
tryLastWhere
last
dropWhile
tryDropWhile
dropUntilOutput
prepend
drop
prefixUntilOutput
prefixWhile
tryPrefixWhile
output
  • 组合
代码语言:javascript
复制
combineLatest
merge
zip
  • 错误处理
代码语言:javascript
复制
catch
tryCatch
assertNoFailure
retry
mapError
  • 调整Publisher类型
代码语言:javascript
复制
switchToLatest
eraseToAnyPublisher
  • 时间控制
代码语言:javascript
复制
debounce
delay
measureInterval
throttle
timeout
  • 编解码
代码语言:javascript
复制
encode
decode
  • 多Publisher
代码语言:javascript
复制
multicast
  • 调试
代码语言:javascript
复制
breakpoint
handleEvents
print
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单案例
  • 内置Operator
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档