2017-03-07 75 views
1
const source = Observable.bindNodeCallback(https.get)(www.google.com); 

source.subscribe({ 
    next: ([res, body]) => {}, 
    error:() => {}, 
    complete: function() { //cannot use arrow function 
    this.unsubscribe(); 
    } 
}); 

这是退订的正确格式吗?我需要取消订阅吗BoundNodeCallbackObservable

回答

1

使用bindNodeCallback创建的观察值将完成或出错,因此您不需要显式取消订阅。订阅将自动取消订阅。

但是,如果您确实要明确取消订阅,您可以;像这样:

const subscription = source.subscribe({ 
    next: ([res, body]) => {}, 
    error:() => {}, 
    complete:() => subscription.unsubscribe() 
}); 
+0

我试过Rxjs 5,使用箭头函数抛出一个错误与'函数unsubscribe'是不确定的,除非 – Terry

+0

回调同步调用这应该是不可能的 - 这不会是一个最佳实践基于回调的API。我现在无法看到这个,但稍后会看看。 – cartant

+0

这里没问题。它适用于RxJS 5.2.0。 – cartant