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

使用fetch()+then()的API调用序列图:同步还是异步?

结论:应表示为异步通信

原因如下:

  • 浏览器层面:fetch发起请求后,主线程不会被阻塞,依然能处理用户交互、页面渲染等其他任务,这是异步操作的核心标志。
  • 代码执行逻辑:fetch()调用后会立刻返回一个Promise对象,后续的.then()只是注册了一个响应回调,代码不会停在fetch调用处等待结果,而是继续执行后面的同步代码。只有当API响应返回后,回调逻辑才会被加入任务队列,等主线程空闲时再执行。
  • 你觉得的“代码需要等待响应处理”,只是回调逻辑依赖响应数据,但整个代码流程并没有被阻塞——同步调用是代码卡在调用点直到拿到结果,而异步是调用后直接放行,结果就绪后再触发后续操作。

举个直观的代码执行顺序例子:

console.log('请求发起前');
fetch('/api/data')
  .then(res => res.json())
  .then(data => console.log('处理响应:', data));
console.log('请求发起后,继续执行');

执行顺序是:

  1. 打印「请求发起前」
  2. 发起API请求,立即返回Promise
  3. 打印「请求发起后,继续执行」
  4. 等待API响应返回,触发.then()里的逻辑,打印「处理响应: xxx」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:12:02