gpt4 book ai didi

javascript - 在异步函数内映射数组会导致错误

转载 作者:行者123 更新时间:2023-12-01 00:48:28 25 4
gpt4 key购买 nike

您好,我的异步函数(router.post())中有对象验证数组,我需要在验证之前映射它,这就是我的做法

ingredients.map(({ingredient,quantity})=>{
if(ingredient.trim().length < 1 || quantity.length < 1){
return res.status(409).send({
message: ''
})
}
})

此后我向客户端(ReactJS)发送 200 状态代码,但它会导致错误

Can't set headers after they are sent

我不知道这有什么问题。

在这段代码之前,我只有 if 语句来验证其他输入,当我评论这段代码时,if 语句起作用。那么这有什么问题呢?

P.S:我在发送服务器之前对数组进行了字符串化,然后当然进行了解析

编辑:当一切正常并且成分或数量不为空时,它不会导致错误

最佳答案

出现此问题的原因是 res.send 被多次调用。

如果您打算在至少一种成分无效的情况下以 409 状态代码进行响应,则可以检查是否有至少一种无效的项目并以 409 进行响应> 如果有的话:

const hasInvalidIngredient = ingredients.some(
({ingredient,quantity}) => ingredient.trim().length == 0 || quantity.length == 0
)

if (hasInvalidIngredient) {
return res.status(409).send({
message: ''
})
}

关于javascript - 在异步函数内映射数组会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57188074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com