【问题标题】:Angular: uncaught in promise error when using pipe and mergemapAngular:使用管道和mergemap时未陷入承诺错误
【发布时间】:2021-12-26 11:40:49
【问题描述】:

我正在使用 Angular 6,我刚刚发现了 pipe 和 mergemap。

基本上,我正在调用一项服务来从 assets 文件夹中读取两个不同的 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 都变成了折线图,第一个工作正常,但第二个抛出 Uncaught (in promise) 错误。

错误是:

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)
    ...

我对两个折线图使用顶点图和相同的模板。

问题是即使它抛出 Uncaught (in promise) 错误,两个图表都会显示(在开发中)。这不像是零件丢失或不显示。它按预期工作。

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

我试图捕捉错误,但由于图表显示,我认为我无法捕捉有用的错误日志。

【问题讨论】:

  • 错误是什么?哪条线抛出它
  • @Antoniossss 就是这样。错误不在我的代码中。我更新了我的帖子。
  • 看起来图形配置或输入数据中缺少某些内容。 Double chech 顶点图表文档
  • @Antoniossss 好的,会的。由于图表显示,我怀疑这是一个大问题,但只是为了彻底。

标签: angular promise pipe subscribe


【解决方案1】:

供日后参考,

我将 chartDataArray 定义为未定义:

public chartDataArray;

这引发了 Uncaught (in promise) 错误。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多