You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:50:26