Angular 8中的可观察和观察者

问题描述 投票:0回答:2

我目前正在Angular 8直播项目中工作。在开发过程中,我发现“ observer.next”已在多个地方使用,例如:1)在订阅中2)在管道中3)可观察我只想知道Observer.next有什么用,我们可以在任何地方使用它。

angular rxjs
2个回答
1
投票

作为发布者,您将创建一个Observable实例,该实例定义了订阅者功能。当使用者调用subscribe()方法时,将执行此函数。订户函数定义如何获取或生成要发布的值或消息。

next-每个传递值的处理程序。执行开始后被调用零次或多次。

const myObservable = of(1, 2, 3);

// Create observer object
const myObserver = {
  next: x => console.log('Observer got a next value: ' + x),
  error: err => console.error('Observer got an error: ' + err),
  complete: () => console.log('Observer got a complete notification'),
};

// Execute with the observer object
myObservable.subscribe(myObserver);
// Logs:
// Observer got a next value: 1
// Observer got a next value: 2
// Observer got a next value: 3
// Observer got a complete notification

也请检查以下链接以获得更多说明

https://ultimatecourses.com/blog/rxjs-observables-observers-operators

https://angular.io/guide/observables#basic-usage-and-terms


0
投票

我们使用观察者将promise转换为可观察变量,请看示例:

const somePromise = new Promise((resolve, reject) => ...);

function promToObs(): Observable<string> {
  return new Observable<string>((observer: Observer<string>) => {
    somePromise.then((result) => {
      observer.next(result);
      observer.complete();
    }).catch(err => result.error(err));
  });
}

© www.soinside.com 2019 - 2024. All rights reserved.