首先,Angular 2中的Observable并不总是返回undefined。Observable是一个基于事件的数据流,它可以发出值,错误或完成信号。
如果你在使用Observable时遇到了返回undefined的问题,可能是因为你没有正确地订阅它。在Observable中,只有在订阅时才会触发数据流。以下是一个示例代码,演示如何正确使用Observable并获取值:
import { Observable } from 'rxjs';
// 创建一个Observable,每秒发出一个值
const myObservable = new Observable(observer => {
let count = 0;
const intervalId = setInterval(() => {
observer.next(count++);
}, 1000);
// 返回一个函数,在取消订阅时清除定时器
return () => {
clearInterval(intervalId);
};
});
// 订阅Observable并获取值
const subscription = myObservable.subscribe(value => {
console.log(value); // 输出每秒递增的值
});
// 取消订阅
subscription.unsubscribe();
注意,在订阅后,你将会在控制台上看到每秒递增的值。确保你正确订阅了Observable,并且在需要时取消订阅以避免内存泄漏。