我目前正在Angular 8直播项目中工作。在开发过程中,我发现“ observer.next”已在多个地方使用,例如:1)在订阅中2)在管道中3)可观察我只想知道Observer.next有什么用,我们可以在任何地方使用它。
作为发布者,您将创建一个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
我们使用观察者将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));
});
}