当前位置: 首页 > 知识库问答 >
问题:

表示

景建业
2023-03-14

我有一个异步Sequelize函数

async getTrips() {
    let trips = await Trip.findAll({
        order: [['id']]
    });

    const data  = trips.map(trip => ({
        ...trip,
        milestones: async () => await Milestone.findAll({
            where: {
                trips_id: trip.id
            }
        }),
        vendor_charges: async () => await VendorCharge.findAll({
            where: {
                trips_id: trip.id
            }
        }),
        trip_notes: async () => await TripNote.findAll({
            where: {
                trips_id: trip.id
            }
        }),
        pieces: async () => await Pieces.findAll({
            where: {
                trips_id: trip.id
            }
        })
    }))
    return data
}

然后在快递路由器里运行

tripsRouter.get('/getAllTrips', (req, res) => {
    const errors = validationResult(req)
    if (!errors.isEmpty())
        return res.status(422).json(errors.array())
    tripsService.getTrips()
    .then(trips =>
        res.status(200).json({
            exception: false,
            payload: trips
        })
    );
})

这似乎在执行时产生了一个“将循环结构转换为JSON”错误

这是错误堆栈:

(节点:9322)未处理的PromisejectionWarning:TypeError:在JSON处将循环结构转换为JSON。在o.getTrips处stringify()。然后e(/home/sandra/development/lakefrontcargo-v2/dist/index.js:1:57753)位于(节点:9322)未处理的Promisejection警告:未处理的promise拒绝。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。(拒绝id:1)(节点:9322)[DEP0018]弃用警告:未处理的promise拒绝已弃用。将来,未处理的promise拒绝将终止节点。具有非零退出代码的js进程。[nodemon]由于更改而重新启动。。。

共有1个答案

南门刚捷
2023-03-14

由于map返回promise数组,因此我建议您使用Promise。所有等待所有promise完成。

const data  = Promise.all ( trips.map(trip => ({
    ...trip,
    milestones: async () => await Milestone.findAll({
        where: {
            trips_id: trip.id
        }
    }),
    vendor_charges: async () => await VendorCharge.findAll({
        where: {
            trips_id: trip.id
        }
    }),
    trip_notes: async () => await TripNote.findAll({
        where: {
            trips_id: trip.id
        }
    }),
    pieces: async () => await Pieces.findAll({
        where: {
            trips_id: trip.id
        }
    })
})) );


return await data;
 类似资料:
  • 在由列表表示的树中,我们将从 Python 的列表数据结构开始,并编写上面定义的函数。虽然将接口作为一组操作在列表上编写与我们实现的其他抽象数据类型有点不同,但这样做是有趣的,因为它为我们提供了一个简单的递归数据结构,我们可以直接查看和检查。 在列表树的列表中,我们将根节点的值存储为列表的第一个元素。列表的第二个元素本身将是一个表示左子树的列表。列表的第三个元素将是表示右子树的另一个列表。为了说明

  • 在斯坦福的一门算法课程中,教授为图的邻接表表示列出了以下成分: 顶点数组或列表 边的数组或列表 顶点列表中的每个顶点都指向其上的边。 边列表中的每个边都指向其边点。 这种表示法与图形的“关联表”表示法相同吗?如果是,为什么本文认为“邻接表”和“发生率表”是分开的?

  • 我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以

  • 本文向大家介绍Dijkstra的邻接表表示算法,包括了Dijkstra的邻接表表示算法的使用技巧和注意事项,需要的朋友参考一下 有一个给定的图G(V,E)及其邻接列表表示形式,并且还提供了一个源顶点。Dijkstra的算法,用于找到源顶点与图G的任何其他顶点之间的最小最短路径。 为了解决这个问题,我们将使用两个列表。一种是存储已被视为最短路径树的顶点,另一种将保存尚未被考虑的顶点。在算法的每个阶段

  • 问题内容: 我有以下Java正则表达式,我没有编写,并且正试图修改: 与此相似。 请注意第一个问号。这是否意味着该组是可选的?对应的后面已经有一个问号。冒号在正则表达式中有特殊含义吗? regex可以很好地编译,并且已经有JUnit测试显示它如何工作。只是我对为什么第一个问号和冒号存在感到有些困惑。 问题答案: 启动一个非捕获组。除非您在使用后从正则表达式中检索组,否则没有什么不同。请参阅什么是非

  • 首先道歉,英语不是我的第一语言。 这是我对图的理解,它表示为形容词列表:它通常用于稀疏图,这是大多数图的情况,它使用V(顶点数)列表。因此,对于无向图,V个头指针+2e个(边数)节点。因此,空间复杂度=O(e+V),因为任何节点可以有多达V-1条边(不包括自身),所以检查节点邻接的时间复杂度为O(V)。 我想知道的是,有没有可能将列表(边缘节点)变成二叉树?因此,要确定A节点是否与B节点相邻,时间