0

Metronic Theme Angular 8 中的可观察到的错误

我在 metronic 主题 angular 8 的另一个组件中使用身份验证服务,但相同的服务正在产生错误,但在默认逻辑组件中它正在工作

this.auth
        .login(authData.email, authData.password)
        .pipe(
            tap(user => {
                console.log(user);
                if (user) {
                    this.store.dispatch(new Login({authToken: user.accessToken}));
                    this.router.navigateByUrl(this.returnUrl); // Main page
                } else {


this.authNoticeService.setNotice(this.translate.instant('AUTH.VALIDATION.INVALID_LOGIN'), 'danger');
                    }
                }),
                takeUntil(this.unsubscribe),
                finalize(() => {
                    this.loading = false;
                    this.cdr.markForCheck();
                })
            )
            .subscribe();
    }

安慰 :

ERROR TypeError: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
    at subscribeTo (subscribeTo.js:28)
    at subscribeToResult (subscribeToResult.js:15)
    at TakeUntilOperator.push../node_modules/rxjs/_esm5/internal/operators/takeUntil.js.TakeUntilOperator.call (takeUntil.js:14)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:24)
    at FinallyOperator.push../node_modules/rxjs/_esm5/internal/operators/finalize.js.FinallyOperator.call (finalize.js:13)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:24)
    at AuthComponent.push../src/app/views/pages/auth/auth.component.ts.AuthComponent.submit (auth.component.ts:176)
    at Object.eval [as handleEvent] (AuthComponent.html:63)
    at handleEvent (core.js:29239)
    at callWithDebugContext (core.js:30309)

AuthComponent.html:63 ERROR CONTEXT 
DebugContext_ {view: {…}, nodeIndex: 102, nodeDef: {…}, elDef: {…}, elView: {…}}
View_AuthComponent_0    @   AuthComponent.html:63
proxyClass  @   compiler.js:20830
push../node_modules/@angular/core/fesm5/core.js.DebugContext_.logError  @   core.js:30271
push../node_modules/@angular/core/fesm5/core.js.ErrorHandler.handleError    @   core.js:4055
dispatchEvent   @   core.js:19863
(anonymous) @   core.js:28448
(anonymous) @   platform-browser.js:1032
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask    @   zone.js:423
onInvokeTask    @   core.js:26247
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask    @   zone.js:422
push../node_modules/zone.js/dist/zone.js.Zone.runTask   @   zone.js:195
push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask    @   zone.js:498
invokeTask  @   zone.js:1693
globalZoneAwareCallback @   zone.js:1719

请帮我解决这个问题

4

1 回答 1

0

基本上我遇到了问题,this.unsubscribetakeUntil(this.unsubscribe)正在为可能遇到类似问题的有抱负的人发布这个答案,我不会浪费他们宝贵的时间只是删除线 takeUntil(this.unsubscribe)this.unsubscribe

this.auth
        .login(authData.email, authData.password)
        .pipe(
            tap(user => {
                console.log(user);
                if (user) {
                    this.store.dispatch(new Login({authToken: user.accessToken}));
                    this.router.navigateByUrl(this.returnUrl); // Main page
                } else {


this.authNoticeService.setNotice(this.translate.instant('AUTH.VALIDATION.INVALID_LOGIN'), 'danger');
                    }
                }),
                /**takeUntil(this.unsubscribe), commented it is undefined**/ 
                finalize(() => {
                    this.loading = false;
                    this.cdr.markForCheck();
                })
            )
            .subscribe();
    }

希望这有助于节省您的时间

于 2019-11-14T13:26:01.057 回答