首页 > 解决方案 > Angular,您提供了一个无效对象,其中仅在 --aot build 中需要流

问题描述

在我的 Angular 应用程序中,我仅在 aot build 中收到以下错误。

您在预期流的位置提供了无效对象。您可以提供 Observable、Promise、Array 或 Iterable。

在调试错误后说它在下面的代码中

<ng-template #leftNavbar>
  <cust-sidebar name="navbar"
     [folded]="false"
     lockedOpen="gt-md"
     *ngIf="!conf.layout.navbar.hidden">
    <navbar class="left-navbar" [ngClass]="conf.layout.navbar.background" layout="vertical"></navbar>
  </cust-sidebar>
</ng-template>

并且错误也指向下面的ngOnInit代码cust-sidebar

this._custConfigService.config
        .pipe(takeUntil(this._unsubscribeAll))
        .subscribe((config) => {
            this._conf = config;
        });

这是我用于获取和设置的配置服务代码config

set config(value)
{ 
    let config = this._configSubject.getValue();

    config = _.merge({}, config, value); 
    this._configSubject.next(config);
}

get config(): any | Observable<any>
{
    return this._configSubject.asObservable();
}

我的代码有什么问题以及为什么我只在 --aot build 而不是正常构建中得到它。

检查这个答案

他说他有两个不同版本的 CLI,在更改了对他有用的 CLI 版本后,我也有两个不同版本的 CLI,但我认为这不是问题吗?

标签: angularobservableangular-aot

解决方案


我得到了问题,谢谢,发生错误是因为我在将导入更改为问题解决后导入了takeUntilfrom 。rxjs/internal/operatorsrxjs/operators

现在我很困惑,如果一个导入在开发中工作,它也应该在生产中工作,否则 angular 应该坚持一个导入文件,而不是让人们感到困惑。


推荐阅读