【发布时间】:2016-12-15 21:39:03
【问题描述】:
当我尝试在此 rxjs 观察者中取消订阅时,我收到错误“非法调用”。
let s = names.subscribe((a:Array<any>) => {
s.unsubscribe();
if(a.length){ reject('name exists') }
}
names 变量的类型为 FirebaseListObservable
设置一些断点,我可以看到观察者函数(回调)正在被立即调用。此订阅之后的任何代码都在回调已经运行一次之后运行。 s 变量未定义,因此在回调中。
我在这里做错了什么?可观察的不应该等到下一个滴答声吗?我应该手动做吗?
更新: 将回调代码包装在 setTimeout(code, 0) 中消除了错误。但是我必须这样做似乎很奇怪?
【问题讨论】:
标签: angular rxjs angularfire2