Asynchronous 当我使用first()管道并收到错误时,是否可以观察到取消订阅?

Asynchronous 当我使用first()管道并收到错误时,是否可以观察到取消订阅?,asynchronous,rxjs,pipe,observable,subscription,Asynchronous,Rxjs,Pipe,Observable,Subscription,考虑以下可观察的,在我的例子中,它是来自Apollo客户端库的GrapgQl的可观察的。如果我正常接收数据,那么第一个()管道将取消对可观测数据的订阅 我尝试记录this.testSubscription,以查看呼叫后订阅是否取消。但我不知道如何伪造错误回调,因此我无法确定收到错误时订阅是否取消订阅 那么,当接收到错误时,first()管道是否会清理订阅?如何测试此功能?当流完成或触发错误时,将完成。还应调用subscribe中的第三个回调参数 this.testSubscription = o

考虑以下可观察的,在我的例子中,它是来自Apollo客户端库的GrapgQl的可观察的。如果我正常接收数据,那么第一个()管道将取消对可观测数据的订阅

我尝试记录
this.testSubscription
,以查看呼叫后订阅是否取消。但我不知道如何伪造错误回调,因此我无法确定收到错误时订阅是否取消订阅


那么,当接收到错误时,first()管道是否会清理订阅?如何测试此功能?

当流完成或触发错误时,将完成
。还应调用
subscribe
中的第三个回调参数

this.testSubscription = observable.pipe(first()).subscribe(
    data => {
        // do stuff here
    }, error => {
        // handle error here
    });

是,
错误
通知将使链取消订阅。这实际上与
first()
无关,这是RxJS内部的工作方式。
this.testSubscription = 
observable.pipe(first(),finalize(()=>console.log('done')).subscribe(null,null,()=>console.log('done'))