我试图建立与rxjs一个angular2部件订阅不执行分配时对组件属性
this._subscription = Observable.timer(1000).subscribe(() => {
console.log('inside timeout')
})
内可观察到的超时功能,在其他方法退订它。但是如果我改变
let _subscription = Observable.timer(1000).subscribe(() => {
console.log('inside timeout')
})
它工作正常,可观察到从未执行 。我也试过
this._subscription=setTimeout(()=>{},1000)
同样的事情发生了。我怀疑这是ngZone的bug,所以我把这个功能包裹起来
this._ngZone.runOutsideAngular(() => {})
但是结果是一样的。任何人都会遇到同样的问题?我正在使用angular 2.2.4
_并在其他方法中取消订阅它 - 显示完整的代码。 _同事发生了 - 同样的事情? –
可观察未执行。它仅在您未将其分配给订阅变量或将其分配给本地作用域subscrioption变量时才执行。 –
这是不正确的,只要你订阅一个observable它被执行,在你的情况下,在1000毫秒内,你应该看到日志消息**,除非**你在1000毫秒通过之前退订 –