Node.js Express中如何实现添加ID到数组后返回响应?
问题分析与解决
你的代码存在两个核心问题:
myProcess是异步延迟操作,但没有提供等待它完成的机制,路由调用后立刻检查数组时,ID还未被添加,导致响应无法触发if语句缺少闭合括号,属于语法错误
修复后的代码
let newArray = [] // 将myProcess改为返回Promise的函数,支持外部等待异步操作完成 const myProcess = (id) => { return new Promise(resolve => { setTimeout(() => { newArray.push(id) resolve() }, 5000) }) } router.use('/', async (req, res) => { const id = req.query.id // 等待异步操作完成后再执行后续逻辑 await myProcess(id) // 此时ID已添加到数组,直接返回响应 res.send({}) })
关键修改说明
- 把
myProcess封装为返回Promise的函数,用setTimeout模拟延迟操作,完成后触发resolve - 在路由处理函数中用
await等待myProcess执行完毕,确保ID已被加入数组 - 移除了冗余的数组判断逻辑(await后ID必然在数组中),同时修复原语法错误
内容的提问来源于stack exchange,提问作者ali
相关产品推荐
相关产品推荐

