调用 .error 后 Angular2 EventEmitter 未完成

Angular2 EventEmitter does not complete after invoking .error

我有一个 EventEmitter 通知用户通知组件应用程序状态已更改。

此事件通知用户尝试验证是否成功。

private emitAuthStatus(success: boolean) {
    if (success) {
        this.locationWatcher.emit({
            authenticated: this.authenticated,
            token: this._authData.token,
            expires: this.expires
        });
    } else {
        this.locationWatcher.error();
    }

    this.locationWatcher.complete();
}

现在,当我调用 .emit 然后调用 .complete 时,一切正常。 但是如果我调用 .error.complete 会抛出一个 ObjectUnsubscribedError

.error 的目的是什么?我在这段代码中做错了什么?

我已更改我的代码,不使用 .error.complete,它们不用于传输信息。

private emitAuthStatus() {
    this.locationWatcher.emit({
        // The .authenticated allow us to know if the EventEmitter is a success
        authenticated: this.authenticated, 
        token: this._authData.token,
        expires: this.expires
    });
}