成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

走進(jìn)JavaScript響應(yīng)式編程(Reactive Programming)

bovenson / 1837人閱讀

摘要:補(bǔ)充說明響應(yīng)式編程采用了訂閱觀察者設(shè)計(jì)模式,使訂閱者可以將通知主動發(fā)送給各訂閱者。一個響應(yīng)式編程的實(shí)現(xiàn)庫是一個庫,它通過使用序列來編寫異步和基于事件的程序。

或許"響應(yīng)式布局"這個名單大家都聽過或者都自己實(shí)現(xiàn)過,那么"響應(yīng)式編程"是什么呢?下面我們來具體聊一聊。

我的理解

從字面意思上我們可以大致理解為:所有的事件存在于一條事件總線上,所有的事件都可以看作未來某個時(shí)間將要發(fā)生的事件流(stream),當(dāng)事件總線上的事件執(zhí)行完后會主動去通知"觀察他們的對象",比如我們經(jīng)常用到的settimeout、異步等都屬于該范疇。

下面是官方解釋:

在某種程度上,這并不是什么新東西。事件總線(Event buses)或咱們常見的單擊事件就是一個異步事件流,你可以觀察這個流,也可以基于這個流做一些自定義操作(原文:side effects,副作用,本文皆翻譯為自定義操作)。響應(yīng)式就是基于這種想法。你能夠創(chuàng)建所有事物的數(shù)據(jù)流,而不僅僅只是單擊和懸停事件數(shù)據(jù)流。 流廉價(jià)且無處不在,任何事物都可以當(dāng)作一個流:變量、用戶輸入、屬性、緩存、數(shù)據(jù)結(jié)構(gòu)等等。比如,假設(shè)你的微博評論就是一個跟單擊事件一樣的數(shù)據(jù)流,你能夠監(jiān)聽這個流,并做出響應(yīng)。

補(bǔ)充說明

"響應(yīng)式編程"采用了“訂閱/觀察者”設(shè)計(jì)模式,使訂閱者可以將通知主動發(fā)送給各訂閱者。

RxJs一個響應(yīng)式編程的實(shí)現(xiàn)庫

RxJS 是一個庫,它通過使用 observable 序列來編寫異步和基于事件的程序。它提供了一個核心類型 Observable,附屬類型 (Observer、 Schedulers、 Subjects) 和受 [Array#extras] 啟發(fā)的操作符 (map、filter、reduce、every, 等等),這些數(shù)組操作符可以把異步事件作為集合來處理。

以下幾個概念是RxJs中比較重要的:

Observable (可觀察對象): 表示一個概念,這個概念是一個可調(diào)用的未來值或事件的集合。

Observer (觀察者): 一個回調(diào)函數(shù)的集合,它知道如何去監(jiān)聽由 Observable 提供的值。

Subscription (訂閱): 表示 Observable 的執(zhí)行,主要用于取消 Observable 的執(zhí)行。

Operators (操作符): 采用函數(shù)式編程風(fēng)格的純函數(shù) (pure function),使用像 map、filter、concat、flatMap 等這樣的操作符來處理集合。

Subject (主體): 相當(dāng)于 EventEmitter,并且是將值或事件多路推送給多個 Observer 的唯一方式。

Schedulers (調(diào)度器): 用來控制并發(fā)并且是中央集權(quán)的調(diào)度員,允許我們在發(fā)生計(jì)算時(shí)進(jìn)行協(xié)調(diào),例如 setTimeout 或 requestAnimationFrame 或其他。

實(shí)例說明

注冊事件監(jiān)聽器的常規(guī)寫法。

var button = document.querySelector("button");
button.addEventListener("click", () => console.log("Clicked!"));

使用 RxJS 的話,創(chuàng)建一個 observable 來代替。

var button = document.querySelector("button");
Rx.Observable.fromEvent(button, "click")
  .subscribe(() => console.log("Clicked!"));

未完待續(xù)...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/89174.html

相關(guān)文章

  • 《Java編程方法論:響應(yīng)RxJava與代碼設(shè)計(jì)實(shí)戰(zhàn)》序

    摘要:原文鏈接編程方法論響應(yīng)式與代碼設(shè)計(jì)實(shí)戰(zhàn)序,來自于微信公眾號次靈均閣正文內(nèi)容在一月的架構(gòu)和設(shè)計(jì)趨勢報(bào)告中,響應(yīng)式編程和函數(shù)式仍舊編列在第一季度的早期采納者中。 原文鏈接:《Java編程方法論:響應(yīng)式RxJava與代碼設(shè)計(jì)實(shí)戰(zhàn)》序,來自于微信公眾號:次靈均閣 正文內(nèi)容 在《2019 一月的InfoQ 架構(gòu)和設(shè)計(jì)趨勢報(bào)告》1中,響應(yīng)式編程(Reactive Programming)和函數(shù)式...

    PAMPANG 評論0 收藏0
  • Web和Android中的Reactive

    摘要:中的常見寫法先看下這段代碼。聲明式編程,就是告訴機(jī)器你想要的是什么,讓機(jī)器想出如何去做。最獨(dú)特的特性之一,是其非侵入性的響應(yīng)式系統(tǒng)。的縮寫將遍歷此對象所有的屬性。這一過程被稱為依賴收集。組件的顯示,數(shù)據(jù)的體現(xiàn)大部分都是由承載,傳遞。 目錄 緣起 Android開發(fā)中的常見寫法 JQuery中的常見寫法 命令式編程 聲明式編程 React中的常見寫法 Vue的常見寫法 你肯定熟悉響應(yīng)...

    liangzai_cool 評論0 收藏0
  • Java Reactive Web設(shè)計(jì)與實(shí)現(xiàn)

    摘要:概念響應(yīng)式編程,異步非阻塞就是響應(yīng)式編程,與之相對應(yīng)的是命令式編程。的另外一種實(shí)現(xiàn)方式就是消息隊(duì)列。非阻塞設(shè)計(jì)利用規(guī)范中的實(shí)現(xiàn)實(shí)現(xiàn)代碼鏈接 注: 本文是由讀者觀看小馬哥公開課視頻過程中的筆記整理而成。更多Spring Framework文章可參看筆者個人github: spring-framework-lesson 。 0. 編程模型與并發(fā)模型 Spring 5實(shí)現(xiàn)了一部分Reacti...

    siberiawolf 評論0 收藏0
  • RxJS 教程

    摘要:是針對異步數(shù)據(jù)流的編程。所以這個數(shù)據(jù)流只包含一個簡單的反射值。且慢,天生就是處理異步數(shù)據(jù)流的,為何不把請求的響應(yīng)作為一個攜帶數(shù)據(jù)的流呢么么噠,概念上沒有問題,我們就來操作一下。你需要明確通知觀察者或者訂閱者數(shù)據(jù)流的到達(dá)或者錯誤的發(fā)生。 Reactive Programming是神馬? 互聯(lián)網(wǎng)上有很多不是很友好的解釋。維基百科 寬泛而玄乎。 Stackoverflow教科書式的解釋非常不...

    KnewOne 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<