typescript Observable.create

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript Observable.create相关的知识,希望对你有一定的参考价值。

export class AppComponent {
  title = 'app';
 
  observable$;
 
  ngOnInit() {
    // create an observable
    this.observable$ = Observable.create((observer) => {
      observer.next(1);
      observer.next(2);
      observer.next(3);
      observer.complete();
    });
    this.observable$.subscribe(
      value => console.log(value),
      err => {},
      () => console.log('this is the end')
    );    
  }
 
  ngOnDestroy() {
    // unsubscribe an observable, otherwise it'll keep on listening even if the component is destroyed
    this.observable$.unsubscribe();
  }
}
// Logs
// 1
// 2
// 3
// "this is the end"

/*
Calling next with a value will emit that value to the observer. 
Calling complete means that Observable finished emitting and will not do anything else. 
Calling error means that something went wrong - value passed to error method should provide details 
on what exactly happened.

A well-formed Observable can emit as many values as it needs via next method, but complete and error methods
can be called only once and nothing else can be called thereafter. If you try to invoke next, complete or 
error methods after created Observable already completed or ended with an error, these calls will be ignored
to preserve so called Observable Contract. Note that you are not required to call complete at any point 
- it is perfectly fine to create an Observable that never ends, depending on your needs.
*/

const observable = Rx.Observable.create((observer) => {
  observer.error('something went really wrong...');
});

observable.subscribe(
  value => console.log(value), // will never be called
  err => console.log(err),
  () => console.log('complete') // will never be called
);

// Logs
// "something went really wrong..."

以上是关于typescript Observable.create的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript入门学习之路

typescript TypeScript Snippets #typescript

TypeScript入门五:TypeScript的接口

TypeScript系列教程--初探TypeScript

TypeScript入门三:TypeScript函数类型

typescript使用 TypeScript 开发 Vue 组件