0

我在 Angular 4 应用程序上有一个奇怪的问题。我的组件订阅了服务的 BehaviorSubject。在它的订阅(或地图,最后没有改变)我调用它第一次运行的 data.json() (来自 BehaviorSubject 的默认值,它是一个空数组)它失败,因为数组没有 .json功能。

//service.ts
private _errors: BehaviorSubject<any> = new BehaviorSubject([]);
public readonly errors: Observable<any> = this._errors.asObservable();
//component.ts
this.errors.subscribe(
  (data) => {
    const errorJSON = data.json();
  }
);

在某些电脑中,此错误不会阻止其余应用程序按预期运行(实际上,甚至没有抛出错误)。在其他情况下,这个错误被抛出,其余的应用程序失败。

所有 pc 都具有完全相同的环境,运行相同的命令和 angular-cli 和本地 angular 依赖项。ng serve 或 ng build 都会发生这种情况。经过多次尝试定位此错误的根本原因,我们发现它与构建过程有关,因为“工作电脑”生成的文件可以在“不工作电脑”上成功运行,而相反(在“工作电脑”上传输的“非工作电脑”生成的文件)失败。

这个问题的根源可能是什么?是否应该抛出此错误的默认行为?无论如何,有没有人经历过类似的事情或对为什么会发生这种情况有什么建议?

4

0 回答 0