GithubHelp home page GithubHelp logo

RxJs 题目汇总 about devnote HOT 4 OPEN

wsqww avatar wsqww commented on August 22, 2024
RxJs 题目汇总

from devnote.

Comments (4)

wsqww avatar wsqww commented on August 22, 2024

单播多播

单播:

每个普通的 Observables 实例都只能被一个观察者订阅,当它被其他观察者订阅的时候会产生一个新的实例。也就是普通 Observables 被不同的观察者订阅的时候,会有多个实例,不管观察者是从何时开始订阅,每个实例都是从头开始把值发给对应的观察者;

多播:

订阅只会接收到实时的数据的功能;Subject

  • BehaviorSubject : 订阅时会发出最近一次发出的值,实例化的时候需要传入一个初始值
  • ReplaySubject : 会保存所有值,然后回放给新的订阅者,同时它提供了入参用于控制重放值的数量(默认重放所有)
  • AsyncSubject : 只有当 Observable 执行完成时(执行complete()),它才会将执行的最后一个值发送给观察者,如果因异常而终止,AsyncSubject将不会释放任何数据,但是会向Observer传递一个异常通知;

from devnote.

wsqww avatar wsqww commented on August 22, 2024

冷 热 Observabel

冷:

只有被 observers 订阅的时候,才会开始产生值。是单播的,有多少个订阅就会生成多少个订阅实例,每个订阅都是从第一个产生的值开始接收值,所以每个订阅接收到的值都是一样的。

热:

不管有没有被订阅都会产生值。是多播的,多个订阅共享同一个实例,是从订阅开始接受到值,每个订阅接收到的值是不同的,取决于它们是从什么时候开始订阅。

from devnote.

wsqww avatar wsqww commented on August 22, 2024

待完善

mergeMap, switchMap, concatMap, exhaustMap

mergeMap :

会立即订阅所有内部 observables,先完成的 先发出值;

switchMap :

它具有取消效果。在每次发出时,会取消前一个内部 observable (你所提供函数的结果) 的订阅,然后订阅一个新的 observable

concatMap :

将值映射成内部 observable,并按顺序订阅和发出
concatMap 之前前一个内部 observable 完成后才会订阅下一个;

from devnote.

wsqww avatar wsqww commented on August 22, 2024

subject & BehaviorSubject 有什么区别

BehaviorSubject是subject的变体,具有类似的多播功能。
不同的是,BehaviorSubject需要初始值,并且会在订阅时发出当前值。
Subject只是多播,不保留状态,但是我们可以使用BehaviorSubject来知道最后一个发出的值。

from devnote.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.