【发布时间】:2020-05-27 14:53:15
【问题描述】:
演示:https://stackblitz.com/edit/rxjs-unsubscribe-issue?file=index.ts
以下代码不起作用
错误:无法读取未定义的属性“取消订阅”
const a = (): Observable<any> =>
new Observable(sub => {
sub.next(1);
return () => {
console.log('unsubscribe');
};
});
const observer = a().subscribe(
value => {
console.log('Subscription');
observer.unsubscribe();
},
e => console.log(e),
() => console.log('complete')
);
但以下代码可以正常工作
const b = (): Observable<any> =>
new Observable(sub => {
setTimeout(()=>sub.next(1),0);
return () => {
console.log('unsubscribe');
};
});
const observer2 = b().subscribe(
value => {
console.log('Subscription b');
observer2.unsubscribe();
},
e => console.log(e),
() => console.log('complete')
);
帮我理解背后的原因
【问题讨论】:
标签: rxjs observable subscription rxjs6 rxjs-observables