You need to enable JavaScript to run this app. React JS结合Express:能否实现多路由请求及多次使用await fetch
优惠活动
大模型
产品
解决方案
定价
更多

React JS结合Express:能否实现多路由请求及多次使用await fetch

问题核心解答

1. 连续使用两次await fetch的合法性

完全支持在async函数内连续使用多次await fetch,不存在语法层面的禁止规则:

  • 如果业务上请求有前后依赖(比如先发新增行程的POST请求,拿到返回的新增记录ID后,再发请求拉取该条记录的详细信息),直接按业务顺序连续写await即可,代码会等前一个请求拿到响应后,再执行下一个请求。
  • 如果多个请求之间没有任何依赖关系,更推荐用Promise.all做并发请求,比串行连续await的加载速度更快:
    // 无依赖多请求并发示例
    const [addResp, listResp] = await Promise.all([
      fetch("http://localhost:5000/todos", { method: "POST", /* 原有配置 */ }),
      fetch("http://localhost:5000/todos?recent=10")
    ])
    

2. 替代单接口请求、一次获取多资源的实现方案

结合你当前的行程提交代码场景,有两种可落地的实现路径:

  • 前端聚合请求:也就是前面提到的,在同一个提交处理函数里,根据需要发起多个独立的fetch请求,按照依赖关系选择串行await或者并发调用。需要特别注意你当前代码的逻辑问题:你现在在await完POST请求后立刻执行了window.location = "/"整页跳转,如果要加第二个fetch请求,必须等第二个请求的响应处理完成后再执行跳转,否则刚发出第二个请求页面就会被重载,请求会被直接中断,拿不到预期的响应结果。
  • 后端聚合接口:在Express端新增一个专门的聚合路由,路由内部一次性完成多类资源的查询、写入操作,把所有前端需要的返回值打包成统一的JSON响应返回。这种方式前端只需要发一次fetch请求,既减少了网络握手的开销,也不用重复配置请求头、重复处理跨域问题。

内容的提问来源于stack exchange,提问作者StudioMan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 22:06:00