麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 什么是響應式編程,Combine, RxJS, RxSwift背后的理論基礎?

什么是響應式編程,Combine, RxJS, RxSwift背后的理論基礎?

來源:千鋒教育
發布人:xqq
時間: 2023-10-11 20:13:41 1697026421

一、響應式編程

響應式編程使用三個核心概念:數據流,函數式編程和異步觀察。

數據流 Data Streams:比如一個 Timer 每隔 1 秒發布一個數,這個數依次遞增 。那么這個 Timer 就可以是一個發布者 Publisher。它發布的內容就會形成一個數據流。好像這樣:1 – 2 – 3 – 4 – …..函數式編程 Functional Programming:有了這個數據流你需要一個一個數據的處理吧,這是你你不是把它當成一個 Array 來處理,因為數據是一個一個來的,你不知道它的終點在哪。因此你自己制定一些標準來篩選想要的。比如你想篩選偶數來做下一步處理,就用 .filter { return value % 2 == 0 }。這么一操作就把偶數留下來了,其余的數據全部不用。而這個處理數據的思路就是函數式編程的思想。異步觀察 Asynchronous Observers:這些處理好的數據給誰聽呢?這里正是 Subscriber 來聽。比如你想沒兩秒更改一次 UI 上面的圖標,顯示遞增的偶數。那么就會訂閱上面那個 Publisher,然后把它處理出來的數據更新到 UI 的 Label 上面。

區分一下指令時編程和函數式編程。指令式編程就是我們熟悉的 if else 一步一步來。而函數式編程則是把功能提出來,不和數據本身的類型掛鉤。比如 Filter 函數,就是篩選滿足某種條件的數據。而響應式編程是什么呢?其實是對數據的處理,處理后發送給訂閱者。

因此你也可以理解成響應式編程是對數據做出反饋,而這里判斷數據的時候就用到了函數式編程的思想。為什么響應式編程使用了函數式編程的核心思想呢?主要是因為函數式編程是 Stateless 的,因此不會有副作用。而響應式編程想處理的就是數據流,所以也有人把響應式編程叫做數據流編程。

「響應式」這三個字描述的是我們的對數據流的處理方式,對數據變化作出響應。「函數式」指的是處理數據的編程方法,描述你想保留刪選或者如何變更數據。「函數式」是「描述式」編程的一種體現。

這里我覺得蘋果 Combine 響應式框架的解釋很好,放在這里你感受一下。

The Combine framework provides a declarative Swift API for processing values over time. These values can represent many kinds of asynchronous events. Combine declares?publishers?to expose values that can change over time, and?subscribers?to receive those values from the publishers.

我大概翻譯一下:Combine 框架提供了描述式 API 用以處理數據流。這些數據可以代表多種異步事件。Combine 框架使用 Publisher 來講數據變更呈現出來;Subscriber 負責從發布者那里接受數據。

Combine 框架和 RxJava, RxJS, RxSwift 等一些列響應式框架和原理是一樣的,因此你可以遠離互通。下面的這些函數就是 Combine 框架 Publisher 函數的一些范例,你也可以把這些處理數據的函數叫做「函數式編程」。

延伸閱讀:

二、同步與異步

分布式網絡系統中,各個參與方節點的運行是相互獨立的,沒有共享內存,沒有全局時鐘。各節點通過消息來進行溝通。在傳統的理念中,我們會把這樣的網絡根據他們通信方式描述成同步和異步的。

同步(Synchronous)就是整個處理過程順序執行,當各個過程都執行完畢,并返回結果。是一種線性執行的方式,執行的流程不能跨越。一般用于流程性比較強的程序,比如用戶登錄,需要對用戶驗證完成后才能登錄系統。異步(Asynchronous)則是只是發送了調用的指令,調用者無需等待被調用的方法完全執行完畢;而是繼續執行下面的流程。是一種并行處理的方式,不必等待一個程序執行完,可以執行其它的任務,比如頁面數據加載過程,不需要等所有數據獲取后再顯示頁面。
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产白嫩美女在线观看| 美女裸免费观看网站| 喝乖女的奶水h1v| 伊人久久精品亚洲午夜| 免费看国产精品麻豆| 午夜无遮挡羞羞漫画免费| 波多野结衣教师在线| 美女浴室被爆羞羞漫画| 蜜桃成熟之蜜桃仙子| 日韩不卡在线播放| 久久不见久久见免费影院www日本| 动漫乱人伦视频在线观看| 羞羞的漫画sss| 欧美高清xx| 8x在线播放| 日韩在线视频一区二区三区| 久久青草国产精品一区| 国产高清免费在线| 精品久久久久久中文字幕| 久久99国产一区二区三区| 99久久精品费精品国产一区二区| 欧美一级片免费在线观看| 国产精品99久久免费观看| 国产精品欧美一区二区三区不卡 | 性高湖久久久久久久久aaaaa| 免费a级黄色片| 夜夜操操| 日韩福利电影网| 狠色狠色狠狠色综合久久| 国产男女爽爽爽免费视频| 深夜福利影院在线观看| 黄色黄色一级片| 印度精品性hd高清| 天堂8在线天堂资源bt| 触手强制h受孕本子里番| 被黑人插入| 亚洲精品国产综合久久一线| 台湾香港澳门三级在线| www.四虎| 中文字幕一区二区三区精彩视频| 久久午夜电影网|