我正在使用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'};