Rxjs学习笔记(1)

100 阅读1分钟

在 RxJS 中,Observable 是一个重要的概念,表示一个可以发射多个值(事件、消息等)的数据源。当我们创建一个 Observable 实例时,我们通常会定义它如何发射值,以及在何时完成或发生错误。

import { Observable } from 'rxjs';
 
const observable = new Observable((subscriber) => {
  subscriber.next(1); // 发射值 1
  subscriber.next(2); // 发射值 2
  subscriber.next(3); // 发射值 3
  setTimeout(() => {
    subscriber.next(4); // 在 1 秒后发射值 4
    subscriber.complete(); // 完成发射
  }, 1000);
});

代码示例中,next 方法是 Observable 的一个关键部分,用于向订阅者(subscriber)发射值。 这里我们使用 new Observable 创建了一个新的 Observable 实例。构造函数接收一个函数作为参数,这个函数定义了 Observable 如何发射值

订阅

为了看到 Observable 发射的值,我们需要订阅它:

observable.subscribe({
  next(x) { console.log('got value ' + x); },
  error(err) { console.error('something wrong occurred: ' + err); },
  complete() { console.log('done'); }
});

这里我们传递了一个对象给 subscribe 方法,这个对象包含三个可选的回调函数: next(x): 当 Observable 发射一个值时调用。 error(err): 当 Observable 发生错误时调用。 complete(): 当 Observable 完成发射时调用。

输出结果:

got value 1
got value 2
got value 3
got value 4
done

订阅后,控制台会依次输出每个发射的值,最后输出 done 表示 Observable 已经完成。

总结

next 方法用于发射值给订阅者。 Observable 可以发射多个值,支持同步和异步发射。 订阅 Observable 以接收发射的值、处理错误和完成通知。