为什么我们想要一个特定类型的 Observable

Why would we want to have an Observable of a Specific Type

//declare observable
somenums: Observable<number[]>

//instantiate the oberservale
somenums: new Observable<number[]>(somefunc)

为什么我要声明一个特定类型的可观察对象。 将 observable 作为 number[] 类型是否表示可观察将 return 一个 number[] 给观察者? 在实例化期间和实例化之后如何将数据流式传输到可观察对象? 以及在这种情况下观察者将如何处理流。

键入 Observables

可观察对象的类型告诉您传递给观察者的 next 回调函数的对象的类型。最重要的是,Observables 可以发出 completeerror 事件(不能同时发出)。

输入 observables 的原因与输入 ArrayFunction 的 return 值的原因相同。这样您的 IDE、解释器、编译器等可以帮助您确保您的程序按照您的意愿执行。

使用 Observables(基本)

// declare observable
somenums: Observable<number[]>

// instantiate Observable 
// (from scratch)
somenums: new Observable<number[]>(observer => {
  observer.next([1,2,3]);
  observer.next([7,6,5]);
  observer.next([4,4,4]);
  observer.complete();
  return {
    unsubscribe: () => {/*do nothing*/}
  }
});

// instantiate the same observable 
// (from RxJS creation operator)
somenums: from([
  [1,2,3],
  [7,6,5],
  [4,4,4]
]);

// subscribe to observable, print emissions to the console
somenums.subscribe(console.log);

// Append the value 4 to each array of numbers, then print to the console
somenums.pipe(
  map(x => ([...x, 4]))
).subscribe(console.log);