Angular:使用管道和合并映射时出现未捕获的承诺错误



我正在使用Angular 6,我刚刚发现了管道和合并映射。

基本上,我调用一个服务从资产文件夹中读取两个不同csv中的一个(用户选择读取哪个(,从每个csv中获取日期,并使用该日期从数据库中选择数据,这些数据将用于创建图形。

所以,我做的是

this.service.getCsv().pipe(
mergeMap((data) => {
let dtLst = getDate(data);
return this.service.getDB(dtLst);
})
).subscribe((result) => {
switch(csvType) {
// create first line graph
// create another line graph
}
})

两个csv都被转换为折线图,第一个很好,但第二个抛出未捕获(承诺(错误。

错误为:

ERROR Error: Uncaught (in promise):
TypeError: Cannot read properties of undefined (reading 'type')
TypeError: Cannot read properties of undefined (reading 'type')
at Function.value (apexcharts.common.js:6)
at t.value (apexcharts.common.js:14)
at t.create (apexcharts.common.js:6)
at apexcharts.common.js:14
at new ZoneAwarePromise (zone.js:910)
...

我使用apexchart和相同的模板来绘制两个折线图。

问题是,即使它抛出了Uncaught(在promise中(错误,两个图都会显示(在dev中(。这并不是说某个零件缺失或没有显示出来。它按预期工作。

但是,我担心的是,如果我发布,并且它在刺激中运行,那么它可能会崩溃或发生其他事情。所以,在我发表之前,我想修复这个错误,但我不知道如何去做

我试图捕捉错误,但由于出现了图表,我认为我无法捕捉到有用的错误日志。

对于未来的参考,

我将chartDataArray定义为未定义:

public chartDataArray;

这引发了Uncaught(承诺中(的错误。

我刚刚将该变量定义为空(空数组和空字符串(,错误就消失了。

public chartDataArray = {data: [], name: '', type: 'line'};

最新更新