- 2024-10-14JS异步编程精通之路(一):Callback、Promise、Async/Await 和 Observable 深度对比
在现代JavaScript编程中,异步操作是常见且必不可少的部分。处理异步的方式多种多样,其中最常见的有Callback、Promise、Async/Await,以及近年来随着响应式编程(ReactiveProgramming)理念兴起的Observable。本文将对这几种异步处理方式进行对比,帮助你理解它们各自的优缺点,以
- 2024-10-08Observable(观察者)设计模式
前言Observable设计模式存在于许多JavaAPI和响应式编程中。下面介绍Java中永恒的Observable模式。Observable设计模式用于许多重要的JavaAPI。一个众所周知的示例是使用ActionListenerAPI执行操作的JButton。在这个例子中,我们ActionListener在按钮上进行了监听或观察。单击
- 2024-08-25swiftUI- @Observable的使用
@Observable是Swift语言中的一个属性包装器(propertywrapper),用于将类的属性标记为可观察的。这意味着当这些属性的值发生变化时,依赖这些属性的视图或其他对象会自动更新。@Observable通常用于SwiftUI和Combine框架中,以实现响应式编程。然而,值得注意的是,@Observable并不
- 2024-07-07[C#] Rx.NET
[C#]Rx.NET 最近在專案中開始使用Rx.NET了,剛開始有些不太適應,不過大致熟悉後,寫起來還是很過癮,不輸給使用RxJS,以下做一些簡單的筆記,讓對Rx.NET有興趣的朋友能快速上手。因為之前都是寫RxJS居多,也會有一些跟RxJS的比較,不過主軸還是以Rx.NET為主。安裝Rx.NETv3.0
- 2024-05-24tdmpc2 Failed to make environment
问题描述https://github.com/nicklashansen/tdmpc2readme文档的例子是pythontrain.pytask=dog-runsteps=7000000,然后我想跑下metaworld中的assembly-v2任务,就得到下面的错误$pythontrain.pytask=assemblyValueError:Failedtomakeenvironment"assembly":ple
- 2024-04-2230 天精通 RxJS (31):如何 Debug?
Debug一直是RxJS的难题,原因是当我们使用RxJS后,代码就会变得高度抽象化;实际上抽象并不是什么坏事,抽象会让代码显得简洁、干净,但同时也带来了除错上的困难。在编写程序时,我们都会希望代码是简洁且可读的。但当我们用简洁的代码来处理复杂的问题,就表示我们的代码会变得
- 2024-04-2230 天精通 RxJS (30):Cold & Hot Observable
HotObservable跟ColdObservable的差别,其实就是资料源(DataSource)在Observable内部建立还是外部建立。在RxJS中很常会看到ColdObservable跟HotObservable这两个名词,其实他们是在区分不同行为的Observable,所谓的ColdObservable就是指每次订阅都是独立的
- 2024-04-2230 天精通 RxJS (28):Scheduler 基本观念
不晓得读者们还记不记得,我们在前面的文章中有提到Scheduler是为了解决RxJS衍生的最后一个问题,而我们现在就在揭晓这个谜底。其实RxJS用久了之后就会发现Observable有一个优势是可以同时处理同步和非同步行为,但这个优势也带来了一个问题,就是我们常常会搞不清处现在的
- 2024-04-2130 天精通 RxJS (27):简易实作 Observable(二)
前一篇文章我们已经完成了基本的observable以及Observer的简易实现,这篇文章我们会接续上一篇的内容实现简易的Observable类别,以及一个creationoperator和一个transformoperator。建立简易Observable类别这是我们上一篇文章写的建立observable实例的函数func
- 2024-04-2030 天精通 RxJS (26):简易实作 Observable(一)
因为实在太多读者在问要如何实作Observable,所以特别调整了本系列文章最后几篇的内容,空出一天的位置来写如何简易实作Observable。为什么是简易实作而不完整实作呢?当然这个系列的文章是希望读者能学会如何使用RxJS,而实作Observable其实只是帮助我们理解Observable的
- 2024-04-1830 天精通 RxJS (25):Subject 总结
Subject其实在RxJS中最常被误解的一部份,因为Subject可以让你用命令式的方式虽送值到一个observable的串流中。很多人会直接把这个特性拿来用在不知道如何建立Observable的状况,比如我们在30天精通RxJS(23)中提到的可以用在ReactJS的Event中,来建立event的observab
- 2024-04-1630 天精通 RxJS (21):深入 Observable
我们已经把绝大部分的operators都介绍完了,但一直没有机会好好的解释Observable的operators运行方式。在系列文章的一开头是以数组(Array)的operators(map,filter,concatAll)作为切入点,让读者们在学习observable时会更容易接受跟理解,但实际上observable的oper
- 2024-04-1530 天精通 RxJS (20):Observable Operators - window, windowToggle, groupBy
前几天我们讲完了能把HigherOrderObservable转成一般的Observable的operators,今天我们要讲能够把一般的Observable转成HigherOrderObservable的operators。其实前端不太有机会用到这类型的Operators,都是在比较特殊的需求下才会看到,但还是会有遇到的时候。Op
- 2024-04-1430 天精通 RxJS (18):可观察运算符 - switchMap, mergeMap, concatMap
今天我们要讲三个非常重要的operators,这三个operators在很多的RxJS相关的library的使用示例上都会看到。很多初学者在使用这些library时,看到这三个operators很可能就放弃了,但其实如果有把这个系列的文章完整看过的话,现在应该就能很好接受跟理解。OperatorsconcatMapconcat
- 2024-04-1330 天精通 RxJS (17):Observable Operators - switch, mergeAll, concatAll
今天我们要讲三个operators,这三个operators都是用来处理HigherOrderObservable。所谓的HigherOrderObservable就是指一个Observable送出的元素还是一个Observable,就像是二维数组一样,一个数组中的每个元素都是数组。如果用泛型来表达就像是Observable<Observab
- 2024-04-1230 天精通 RxJS (16):Observable Operators - catch, retry, retryWhen, repeat
我们已经快把所有基本的转换(Transformation)、过滤(Filter)和合并(Combination)的operators讲完了。今天要讲错误处理(ErrorHandling)的operators,错误处理是异步行为中的一大难题,尤其有多个交错的异步行为时,更容易凸显错误处理的困难。就让我们一起来看看在RxJS中能如何处理
- 2024-04-1130 天精通 RxJS (14):Observable Operator - throttle, debounce
昨天讲到了在UI操作上很常用的delay,今天我们接着要来讲另外两个也非常实用operators,尤其在做性能优化时更是不可或缺的好工具!Operatorsdebounce跟buffer、bufferTime一样,Rx有debounce跟debounceTime一个是传入observable另一个则是传入毫秒,比较常用到的是de
- 2024-04-0730 天精通 RxJS (09):Observable Operator - skip, takeLast, last, concat, startWith, merge
运营商skip我们昨天介绍了take可以取前几个送出的元素,今天介绍可以略过前几个送出元素的operator:skip,范例如下:varsource=Rx.Observable.interval(1000)varexample=source.skip(3)example.subscribe({ next:(value)=>{ console.log(value) }, error:(err)
- 2024-04-0130 天精通 RxJS (06): 建立 Observable(二)
CreationOperatorObservable有许多创建实例的方法,称为creationoperator。下面我们列出RxJS常用的creationoperatorcreateoffromfromEventfromPromiseneveremptythrowintervaltimerof还记得我们昨天用create来建立一个同步处理的observable吗?varsou
- 2024-03-3130 天精通 RxJS (05): 建立 Observable(一)
今天大家看文章一定要分清楚Observable跟Observer,不要搞混。前几天我们把所有重要的观念及前置的知识都讲完了,今天要正式进入RxJS的应用,整个RxJS说白了就是一个核心三个重点。一个核心是Observable再加上相关的Operators(map,filter...),这个部份是最重要的,其他三个重
- 2024-03-3030 天精通 RxJS (04):什么是 Observable ?
要理解Observable之前,我们必须先谈谈两个设计模式(DesignPattern),IteratorPattern跟ObserverPattern。今天这篇文章会带大家快速的了解这两个设计模式,并解释这两个Pattern跟Observable之间的关系!ObserverPatternObserverPattern其实很常遇到,在许多API的设计
- 2024-03-07RxJava3 用法
https://github.com/xxm-sz/blog/issues/14主要变化主要特点单一依赖:Reactive-Streams继续支持Java6+和Android2.3+修复了API错误和RxJava2的许多限制旨在替代RxJava2,具有相对较少的二进制不兼容更改提供Java8lambda友好的API关于并发源的不同意见异步或同步执行
- 2024-02-21RxJS中高阶映射操作符的全面讲解:switchMap, mergeMap, concatMap (and exhaustMap)
原文链接:https://blog.angular-university.io/rxjs-higher-order-mapping/有一些在日常开发中常用的RxJS的操作符是高阶操作符:switchMap,mergeMap,concatMap,以及exhaustMap。举个例子,程序中大多数的网络请求都是通过以上某个操作符来完成的,所以为了能够写出几乎所有反应式编程,必须
- 2024-02-11[RxJS] firstValueFrom/lastValueFrom (convert observable to promise)
Convertsanobservabletoapromisebysubscribingtotheobservable,andreturningapromisethatwillresolveassoonasthefirstvaluearrivesfromtheobservable.Thesubscriptionwillthenbeclosed.WARNING:Onlyusethiswithobservablesyou know
- 2024-01-19设计模式:观察者模式
1.观察者模式观察者模式(ObserverPattern)观察者模式又叫作发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependent)模式一对多的依赖关系,一个主题对象可被多个观察者对象同时监听,每当主题对象状态变化时,所有依赖它的对象都会得