首先是 Observable 和promise的区别,
1返回值个数,Observable 可以返回0到无数个值。
2.Promise主动推送,控制着"值"何时被 "推送 "到回调函数。
Observable 被动,没有被订阅的时候,它就什么也不做,而且,它既可以是同步的,又可以是异步的。
import { Observable } from ‘rxjs‘; const foo = new Observable(subscriber => { console.log(‘Hello‘); subscriber.next(42); subscriber.next(100); subscriber.next(200); setTimeout(() => { subscriber.next(300); // happens asynchronously }, 1000); }); console.log(‘before‘); foo.subscribe(x => { console.log(x); }); console.log(‘after‘); /*结果: "before" "Hello" 42 100 200 "after" 300*/
操作符(operator)有两种。一种是(Pipeable Operator)对返回的数据做中间处理。不改变输入(纯函数)。它把一个 Observable 作为输入,并生成另一个 Observable 作为输出。
另外一种可以直接创建新的Observable(Creation Operator)。比如 of(1,2,3)创建一个Observable ,它将发出1,2,3,一个接着一个。
import { of } from ‘rxjs‘; import { map } from ‘rxjs/operators‘; map(x => x * x)(of(1, 2, 3)).subscribe((v) => console.log(`value: ${v}`));
same as
// Logs: // value: 1 // value: 4 // value: 9
原文:https://www.cnblogs.com/xinfangzhang/p/12615776.html