前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库异步与 Promise专题面试题
面试知识索引 · 分类、标签与搜索

异步与 Promise专题面试题,34 道完整答案

异步与 Promise专题面试题第 1 页,显示第 1–34 题,共找到 34 道完整解析,可继续按分类、标签与关键词缩小范围。

34筛选结果
52技术分类
178检索标签
1索引分页
按分类建立知识面,再用标签和搜索定位问题

每页只渲染 50 道题。分类与标签分页可抓取,自由搜索结果不会制造无限 SEO 页面。

快速定位

分类、标签与关键词搜索

清除全部筛选
题库检索
技术分类52 个
全部分类5000AI Agent511浏览器301JavaScript285React281AI 开发262CSS240Node.js217TypeScript206Vue180前端工程化138React Native135
查看全部 52 个分类
操作系统135数据库134Docker95计算机网络94API 设计90Kubernetes90HTML89Redis89全栈开发88分布式系统88系统设计86HTTP85Next.js60Angular58Linux53Nuxt51PostgreSQL46可观测性46设计模式46小程序45身份与权限45无障碍44MongoDB43PWA43Web 安全43Git42前端测试42前端性能41WebAssembly40测试40AI 工程37SvelteKit37Go35前端数据管理30React Router29AI 全栈28Svelte27算法12Java10数据结构5前端手写题3
热门标签178 个
全部标签异步与 Promise34并发编程448缓存355性能优化340安全336异步编程292类型系统215构建工具211容器化184流处理177表单157SQL148HTTP141路由140离线应用121
查看其余 163 个标签
网络协议111测试109数据库事务95实时通信92Web 可访问性90动画79可观测性77Agent 记忆75向量检索66工具调用66LangGraph59Prompt56任务规划53排障与运维53数据库索引52浏览器自动化51Flexbox50值与类型50GraphQL49事务与并发49构建与镜像49DNS 与 TLS48工程协作与交付48AI 评测47CSS Grid47Express 服务47MCP47副作用与同步47向量与嵌入47文件与多媒体47流与二进制47传输与协议46列表与性能46可维护代码46响应式原理46容器运行46指标日志追踪46数据建模与运维46文件与 I/O46表单与输入46MCP 协议45RAG45Vite 与模块构建45Webpack45内存与虚拟化45原生集成45多 Agent45工作负载与发布45应用与性能45数据处理45模块与工具链45组件与模板45缓存与数据结构45网络与运维45评估与调试45身份认证与授权45运行时与开发45Web 系统方案44一致性与容错44侦听与生命周期44分布式使用44原生组件与交互44可访问交互44消息与异步处理44渲染与调度44索引与执行计划44组件设计44缓存与代理44进程与并发44层叠与选择器43攻击面与防御43文档数据库43权限与安全43离线与渐进增强43语义与文档43请求与通信 API43Worker 与线程协作42事件系统42存储与离线数据42服务架构42服务端与流式渲染42服务端工程42泛型设计42版本控制42类型收窄42类型运算42组件与端到端42编码与执行42进程与线程42DOM 与文档操作41Flex 布局41HTTP 语义41NestJS 架构41REST 与接口契约41SQL 查询41加载与交互性能41动画与视觉41类型工程41记忆与状态41运行时与调度41Agent 架构40WebAssembly 集成40单元与集成测试40多 Agent 协作40工作流编排40模块与语言机制40浏览器与 UI 自动化40生产运行40函数与作用域39响应式设计39性能与并发39类型系统基础39Grid 布局38数组与集合38盒模型与排版38Hooks 与复用37应用开发37推理与成本37状态共享37知识库数据37模型与应用评测36对象与原型35状态与渲染35语言与并发35Effect32RAG 检索31React 性能31响应式与性能31微调与数据31TanStack Query30全栈边界30数据与缓存30大模型基础29路由与数据流29事件循环28流式交互28提示与上下文设计27数据与服务端27组件与依赖注入27组件与响应式27多模态应用24应用与渲染24Hydration22沙箱安全22状态管理18算法18CI/CD13语言与运行时10React Server Components6搜索与排序4实用函数实现3链表栈队列3图算法2字符串算法2树与遍历2索引与高级结构2Kubernetes1作用域与函数1动态规划1异步与浏览器1手写与交互性能1数组与双指针1相等比较1
当前页01 / 1

正在显示第 1–34 题

JavaScript34
第 1 页

本页面试问题

按稳定语义路径排序

  1. 0001
    JavaScript异步与 Promise

    怎么用 AbortController 取消 fetch 请求?

    AbortController 怎么取消 fetch 请求?用 signal 把控制器和请求连起来,调用 abort() 后 fetch 以 AbortError 拒绝。附搜索框取消旧请求、超时取消、一个 signal 取消多个请求的写法和常见坑。

    核心关键词AbortController fetch
    #异步与 Promise#异步编程
  2. 0002
    JavaScript异步与 Promise

    async 函数里直接 throw 一个错误,调用方会怎么收到?

    async 函数里同步 throw 的错误不会直接抛给调用方,而是变成返回的 Promise 的拒绝原因。讲清为什么外层 try/catch 接不住、await 之后才接得住,以及它和普通函数返回 Promise、setTimeout 回调里抛错的区别。

    核心关键词async 函数同步错误
    #异步与 Promise#异步编程
  3. 0003
    JavaScript异步与 Promise

    async 函数里 return 一个值,外面拿到的是值还是 Promise?

    async 函数不管 return 什么,调用方拿到的都是一个 Promise。讲清 return 普通值、return 另一个 Promise、return thenable 分别会怎样,为什么返回的 Promise 和 return 的不是同一个,以及怎么把值取出来。

    核心关键词async 函数 return
    #异步与 Promise#异步编程
  4. 0004
    JavaScript异步与 Promise

    forEach 里写 async/await,为什么不会一个一个按顺序等?

    forEach 会同步调用完所有回调,并丢掉 async 回调返回的 Promise,所以既不按顺序等,外面也不知道什么时候全做完。讲清原因,给出 for...of 串行、Promise.all 加 map 并发两种替代写法,以及错误接不住的坑。

    核心关键词forEach async await 问题
    #异步与 Promise#异步编程
  5. 0005
    JavaScript异步与 Promise

    for 循环里逐个 await 请求是串行的吗?怎么改成并发?

    for 循环里每次 await 都要等上一个请求回来才发下一个,是串行,总耗时是所有请求之和。用可运行的计时示例对比串行和 Promise.all 并发,讲清并发的关键是先发起再等待,以及限流、失败处理和什么时候必须串行。

    核心关键词await for 循环串行
    #异步与 Promise#异步编程#并发编程
  6. 0006
    JavaScript异步与 Promise

    为什么说 async/await 是 Promise 的语法糖?能把它改写成 then 链吗?

    async/await 底层还是 Promise:async 函数返回 Promise,await 后面的代码相当于放进 then 回调里执行。用可运行示例把同一段逻辑写成 await 版和 then 链版,讲清错误处理、finally 的对应关系,以及两种写法不完全等价的地方。

    核心关键词async/await vs Promise 链
    #异步与 Promise#异步编程
  7. 0007
    JavaScript异步与 Promise

    async/await 里哪些错误该用 try/catch 接,哪些不该接?

    try/catch 只能接住被 await 的 Promise 拒绝和同步抛错,漏写 await、定时器回调里的错误都接不住。讲清哪些业务错误应该就地处理,哪些程序 bug 应该放给全局兜底,以及 return 和 return await 的区别。

    核心关键词async/await 错误捕获边界
    #异步与 Promise#异步编程
  8. 0008
    JavaScript异步与 Promise

    并发池里任务谁先完成不一定,怎么让结果还按原来的顺序排?

    限制并发的任务池里,先发的任务不一定先完成,直接 push 结果顺序就乱了。讲清按下标写回结果数组的做法、为什么下标要在 await 之前取,以及按完成顺序处理、按原顺序分段输出这两种变体和失败时的处理。

    核心关键词并发池结果顺序
    #异步与 Promise#异步编程#并发编程
  9. 0009
    JavaScript异步与 Promise

    手写一个限制最大并发数的异步任务调度器,怎么实现?

    经典手写题:实现一个 Scheduler,最多同时运行 2 个任务,add 返回 Promise。用一个等待队列加一个运行计数器实现,附 2 3 1 4 输出的完整推演,以及同步抛错、任务失败卡死队列这些常见漏洞。

    核心关键词异步并发池实现
    #异步与 Promise#异步编程#并发编程
  10. 0010
    JavaScript异步与 Promise

    给 fetch 加重试时,怎么保证每次重试带的参数都和第一次一样?

    fetch 重试最常见的坑是参数丢失:Request 对象的请求体只能读一次,第二次发就报 TypeError,options 被拦截器改过也会带错。讲清保存 url 和 options 重发、每次 clone、哪些错误该重试、退避间隔和 POST 幂等问题。

    核心关键词fetch 重试实现
    #异步与 Promise#异步编程
  11. 0011
    JavaScript异步与 Promise

    一个请求既要能被用户取消又要有超时,AbortSignal.any 怎么用?

    AbortSignal.any 接收一组 signal,返回一个新 signal,其中任意一个被取消它就跟着取消。讲清用户取消加超时的组合写法、怎么通过 reason 区分是谁取消的、已取消的 signal 传进去会怎样,以及老环境下的手写降级。

    核心关键词AbortSignal.any
    #异步与 Promise#异步编程
  12. 0012
    JavaScript异步与 Promise

    Promise.all 传一个空数组进去,会一直 pending 吗?

    Promise.all([]) 不会卡住也不会报错,而是返回一个已经 fulfilled、值为空数组的 Promise。讲清它为什么是同步变成 fulfilled、回调却仍然异步执行,以及 race、any、allSettled 遇到空数组时各自的表现和业务里的坑。

    核心关键词Promise.all 空数组
    #异步与 Promise#异步编程
  13. 0013
    JavaScript异步与 Promise

    Promise.all 里一个请求挂了,怎么让其他请求的结果还能用?

    Promise.all 只要有一个请求失败就整体 reject,其他成功的结果全拿不到。讲两种保住结果的写法:给每个 Promise 单独 catch 兜底,或者改用 Promise.allSettled,以及关键接口和可选接口混在一起时该怎么拆。

    核心关键词Promise.all 单个失败保留其他结果
    #异步与 Promise#异步编程
  14. 0014
    JavaScript异步与 Promise

    Promise.all 的数组里混了普通值,会怎么处理?

    Promise.all 数组里放数字、字符串、null 这类普通值不会报错,它们会被 Promise.resolve 包一层,结果数组里原样保留,位置也不变。讲清包装过程、thenable 对象的特殊处理、结果顺序为什么和完成顺序无关,以及传入不可迭代值时的表现。

    核心关键词Promise.all 非 Promise 值
    #异步与 Promise#异步编程
  15. 0015
    JavaScript异步与 Promise

    Promise.all 有一个 reject 了,会立刻失败吗?剩下的任务还会跑吗?

    Promise.all 是快速失败的:第一个 reject 出现时整体立刻拒绝,不等其他任务。但其他任务不会被停掉,它们照样执行完,结果和后续错误都被静默丢弃。附执行顺序演示、用 AbortController 真正停掉剩余请求的写法和常见误区。

    核心关键词Promise.all 快速失败
    #异步与 Promise#异步编程
  16. 0016
    JavaScript异步与 Promise

    Promise.allSettled 返回的数组里,每一项长什么样?

    Promise.allSettled 的结果数组里,成功项是 status 加 value,失败项是 status 加 reason,顺序和传入顺序一致。讲清两种结构、为什么要用 status 而不是 value 判断成败、TypeScript 里怎么收窄类型,以及和 Promise.all 的区别。

    核心关键词Promise.allSettled 结果结构
    #异步与 Promise#异步编程
  17. 0017
    JavaScript异步与 Promise

    已经拿到一个 Promise 了,为什么还用 new Promise 包一层是反模式?

    明明函数已经返回 Promise,还要 new Promise 再包一层,代码多了不说,内层出错时外层 Promise 可能永远 pending。这篇用一段能跑的代码演示错误是怎么丢的,讲清直接 return 原链的改法,以及什么时候才真的需要 new Promise。

    核心关键词new Promise 包裹已有 Promise 反模式
    #异步与 Promise#异步编程
  18. 0018
    JavaScript异步与 Promise

    Promise.any 全部失败时会报什么错?每个失败原因怎么拿?

    Promise.any 只要有一个成功就返回,全部失败时才拒绝,拒绝值是 AggregateError,每个失败原因都在它的 errors 数组里。这篇讲清 errors 的顺序规则、空数组的特殊情况、多节点兜底请求的写法,以及 catch 里怎么区分 AggregateError 和普通错误。

    核心关键词Promise.any AggregateError
    #异步与 Promise#异步编程
  19. 0019
    JavaScript异步与 Promise

    Promise.any 和 Promise.race 都是取最快的,区别在哪?

    Promise.race 取第一个结束的结果,不管成功还是失败;Promise.any 取第一个成功的,失败会被跳过,全部失败才拒绝。这篇用同一组任务对比两者的输出,讲清超时控制和多节点择优两个典型场景该选哪个,以及空数组时两者的不同表现。

    核心关键词Promise.any vs race
    #异步与 Promise#异步编程
  20. 0020
    JavaScript异步与 Promise

    catch 放在 Promise 链中间和放在末尾,结果有什么不一样?

    catch 放在链中间,会把错误吃掉并让链恢复成功,后面的 then 照常执行;放在末尾,前面任何一步出错都会跳过剩下的 then 直接进来。这篇用一段对比代码讲清两种位置的输出差异、catch 的返回值怎么决定后续走向,以及 then 第二个参数和 catch 的区别。

    核心关键词Promise catch 位置差异
    #异步与 Promise#异步编程
  21. 0021
    JavaScript异步与 Promise

    then 回调里 throw 一个错误,后面的链会怎样?

    then 回调里抛出的异常会被 Promise 自动捕获,变成链上的拒绝,后面的成功回调被跳过,直接进入 catch。这篇用代码演示错误沿链传递和恢复的过程,讲清只有同步抛出才会被捕获、setTimeout 里的 throw 为什么接不住,以及外层 try/catch 为什么无效。

    核心关键词Promise 链抛出异常
    #异步与 Promise#异步编程
  22. 0022
    JavaScript异步与 Promise

    new Promise 里传的函数是同步执行还是异步执行?

    new Promise 传入的 executor 是同步执行的,new 的那一刻就会被立即调用;异步的只是 then 回调。通过一段打印顺序题讲清 executor、resolve 和 then 各自在什么时候运行,以及 executor 里写异步代码、同步抛错时会怎样。

    核心关键词Promise executor 同步执行
    #异步与 Promise#异步编程
  23. 0023
    JavaScript异步与 Promise

    在 new Promise 的 executor 里直接 throw,Promise 会变成 rejected 吗?

    executor 里同步 throw 的错误会被 Promise 构造器捕获,Promise 变成 rejected,错误对象就是拒绝原因。讲清三个边界:resolve 之后再 throw 会被忽略,setTimeout 回调里 throw 构造器接不住,没写 catch 会触发未处理拒绝。

    核心关键词Promise executor 抛出错误会拒绝吗
    #异步与 Promise#异步编程
  24. 0024
    JavaScript异步与 Promise

    Promise 的 finally 和 then 回调有什么不一样?

    finally 回调拿不到结果,返回值也会被忽略,上一步的成功值或失败原因会原样传下去;只有在 finally 里抛错或返回 rejected Promise,才会改写结果。用可运行的示例讲清这三点,以及用 finally 关 loading 的正确姿势。

    核心关键词Promise finally 与 then 区别
    #异步与 Promise#异步编程
  25. 0025
    JavaScript异步与 Promise

    then 回调里返回一个 Promise,下一个 then 拿到的是 Promise 还是值?

    then 回调返回一个 Promise 时,下一个 then 拿到的是这个 Promise 最终的值,而不是 Promise 本身。讲清外层 Promise 如何等待并跟随内层的状态、thenable 为什么也会被展开、返回自身为什么报错,以及展开带来的额外微任务。

    核心关键词Promise 嵌套展开
    #异步与 Promise#异步编程
  26. 0026
    JavaScript异步与 Promise

    Promise.race 传一个空数组进去,会返回什么?

    Promise.race 传入空数组,返回的 Promise 永远停在 pending,既不成功也不失败,await 它的代码会一直卡住。对比 Promise.all、allSettled、any 在空数组下的不同结果,讲清原因和业务代码里该怎么防。

    核心关键词Promise.race 空数组
    #异步与 Promise#异步编程
  27. 0027
    JavaScript异步与 Promise

    Promise.resolve 传入一个 thenable 对象时会发生什么?

    Promise.resolve 收到带 then 方法的对象时,不会原样返回它,而是新建一个 Promise,在下一个微任务里调用它的 then 来决定结果。附原样返回的唯一条件、then 行为不规范时的处理和 await 的关系。

    核心关键词Promise.resolve thenable
    #异步与 Promise#异步编程
  28. 0028
    JavaScript异步与 Promise

    多个 Promise 并发执行时,then 回调一定按完成顺序触发吗?

    多个 Promise 同时跑,then 回调基本按谁先兑现谁先执行,而不是按创建顺序。但用 Promise 去 resolve 另一个 Promise 会多等两个微任务,顺序就会反过来。附 Promise.all 结果顺序和真实请求里的处理方式。

    核心关键词Promise then 触发顺序
    #异步与 Promise#异步编程#并发编程
  29. 0029
    JavaScript异步与 Promise

    Promise 的状态只能改变一次,多次调用 resolve 或 reject 会怎样?

    Promise 只认第一次 resolve 或 reject,之后的调用全部静默忽略,也不会报错。但 resolve 不会让函数停下,后面的代码照样执行。附 resolve 一个 Promise 时的锁定状态、超时封装里的应用和手写 Promise 的实现要点。

    核心关键词Promise 状态不可变
    #异步与 Promise#异步编程
  30. 0030
    JavaScript异步与 Promise

    Promise 已经兑现了,then 回调为什么还是异步执行?

    哪怕 Promise 早就兑现,then 回调也要等当前同步代码跑完才执行。这篇讲清它被放进了微任务队列、为什么规范要这样设计(避免时同步时异步的回调),以及和 setTimeout、await 的执行顺序关系。

    核心关键词then 回调异步执行
    #异步与 Promise#异步编程
  31. 0031
    JavaScript异步与 Promise

    怎么用 Promise.race 给异步操作加超时?超时后原来的 Promise 还会跑吗?

    用 Promise.race 让原任务和一个定时拒绝的 Promise 赛跑,就能实现超时。但 race 只是不再等结果,原任务照样执行完。附清理定时器的完整写法、用 AbortController 真正取消请求的方式和常见追问。

    核心关键词Promise.race 超时
    #异步与 Promise#异步编程
  32. 0032
    JavaScript异步与 Promise

    什么时候会触发 unhandledrejection?怎么避免未处理的 Promise 拒绝?

    Promise 被拒绝后,如果到本轮微任务结束都没有任何处理函数,浏览器就会触发 unhandledrejection。这篇讲清几种最常见的漏处理写法、catch 挂错位置的坑、Node.js 里的默认行为,以及怎样用它做全局错误上报。

    核心关键词unhandledrejection 事件
    #异步与 Promise#异步编程
  33. 0033
    JavaScript异步与 Promise

    递归处理层级不确定的异步任务,怎么避免爆栈和 Promise 链越来越长?

    异步递归有两个坑:await 之前就递归会同步爆栈,每层都 return 下一层的 Promise 会让内存一直涨。这篇讲清两种问题的来源,为什么尾递归在 JavaScript 里靠不住,以及用 while 循环加队列改写的标准做法。

    核心关键词递归 Promise 链 栈溢出 避免
    #异步与 Promise#异步编程
  34. 0034
    JavaScript异步与 Promise

    一组返回 Promise 的函数,怎么用 reduce 串行执行并把上一个结果传给下一个?

    用 reduce 从 Promise.resolve(初始值) 开始,每一步 prev.then(fn),就能让函数依次执行并拿到上一步的结果。附 async/await 写法、把 fn() 写成立即调用导致变并发的经典错误、错误处理和收集全部结果的方法。

    核心关键词reduce 串行 Promise
    #异步与 Promise#异步编程
上一页
1
下一页
前端进阶之旅本地 Markdown 维护 · 服务端分页 · 完整内容对用户与搜索引擎一致