调用.error后,Angular2 EventEmitter无法完成

时间:2016-07-17 13:35:47

标签: angular rxjs eventemitter

我有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的目的是什么,我在这段代码中做错了什么?

1 个答案:

答案 0 :(得分:0)

我已将我的代码更改为不使用.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
    });
}