FrankKai

Results 350 comments of FrankKai

### of 将参数转化为一个可观察序列。 每个参数都会作为下一个通知。 ![image](https://user-images.githubusercontent.com/19262750/163086704-c0a93b3f-2703-4803-86cf-83b3cb13b098.png) #### 示例 发射数据10,20,30 ```js import { of } from 'rxjs'; of(10,20,30).subscribe( next => console.log('next:', next), err => console.log('error:', err), () => console.log('the end'), ) ```...

### from 将数组,类数组,Promise,可迭代对象等等,转化为Observable。 一句话总结:将万物转化为Observable ![image](https://user-images.githubusercontent.com/19262750/163094465-cee78a97-90e3-4f68-a288-5d57f0524a99.png) #### 例子 同步流 ```js import { from } from 'rxjs'; const array = [10, 20, 30]; const result = from(array); console.log('start'); // 同步订阅 result.subscribe((x) =>...

### map 对observable发出的值,都经过map函数的处理,并且作为结果返回。 ![image](https://user-images.githubusercontent.com/19262750/163088379-ce5c0cd4-d996-4ce8-ab03-45e81a5dd1af.png) 对每个值都乘以10 ```js import { of, map } from 'rxjs'; of(1, 2, 3) .pipe(map((num) => num * 10)) .subscribe( (next) => console.log('next:', next), (err) => console.log('error:', err),...

### timer timer observable很适合在代码中创建延时,或者是与其他特定的值做race。 delay默认情况下是毫秒。 每隔2s,执行一次回调函数(0~2秒内不触发) ```js import { timer } from 'rxjs'; timer(0, 2000).subscribe((n) => console.log('timer', n)); ```

### interval 可用于准时返回递增数字。 ![image](https://user-images.githubusercontent.com/19262750/163091055-f29c618e-b272-426c-ab88-8ee8ceeaaffb.png) #### 例子 每秒+1,加到3秒 ```js import { interval } from 'rxjs'; import { take } from 'rxjs/operators'; const numbers = interval(1000); const takeFourNumbers = numbers.pipe(take(4)); takeFourNumbers.subscribe(x =>...

### Observable 通过Observable创建一个流,并且通过subscriber.next控制输出。 ```js import { Observable } from 'rxjs'; const stream$ = new Observable((subscriber) => { setTimeout(() => { subscriber.next([1, 2, 3]); }, 500); setTimeout(() => { subscriber.next({ a:...

### Subject >What is a Subject? An RxJS Subject is a special type of Observable that allows values to be multicasted to many Observer 是一种特殊类型的Observable,可以将消息同时广播给多个Observer,也就是多播。 而普通Observable则对应一个Observer,是单播。 可以理解为最简发布订阅。 ```js import {...

### BehaviorSubject(与Subject区别、在medusa中的应用) Subject的变体,需要初始值,并在订阅时发出其当前值。 **注意:与Subject不同的是,需要初始值,而且subject.next会在所有订阅函数中执行(无论前后位置)。** ```js import { BehaviorSubject } from 'rxjs'; const subject = new BehaviorSubject(123); subject.subscribe(console.log); subject.subscribe(console.log); subject.next(456); subject.subscribe(console.log); subject.next(789); // 123 // 123 // 456 // 456 //...

### Rxjs流最简流程(创建流、处理流、启动流、停止流) 分为4步: 1. 创建流 2. 处理流(或者说消费流) 3. 启动流 4. 停止流 ```js import { Observable } from "rxjs"; // 创建流 - Observable const stream$ = new Observable(subscriber => { setTimeout(()...

### Rxjs在React框架中使用 这是一个例子,模拟了如何使用Rxjs,改造 **前端请求接口后返回的数据,与prop数组做拼接** 这种场景。 传统方式 ```js import * as React from 'react'; const GreetSomeone = ({ greet = 'Hello' }) => { const [greeting, setGreeting] = React.useState(''); const [name,...