前端/移动开发面试题更新 2026-08-05

请说明 Koa 框架中异步错误处理的机制,并解释其底层的实现原理。

前端/移动开发技术原理问题排查KoaNode.js

考察说明

考查对 Koa 中间件机制和异步错误捕获的理解。

回答思路

  1. 【回答框架 1】Koa 基于 async/await 和 Promise,中间件执行顺序如同洋葱模型。异步错误主要通过 Promise 的 rejection 传播。
  2. 【回答框架 2】Koa 内部使用 co 模块(或原生 async/await)将中间件包装成 Promise 链,任何未被捕获的 rejection 会沿着中间件链向上传递。
  3. 【回答框架 3】app.on('error') 事件用于捕获未被中间件处理的错误,默认输出错误信息,可自定义监听。
  4. 【回答框架 4】在中间件中使用 try/catch 包裹 await 调用,可以捕获异步错误并进行自定义处理,如返回错误响应。
  5. 【回答框架 5】未捕获的异步错误会导致 Promise 链拒绝,Koa 会终止请求并触发错误事件,避免进程崩溃。
  6. 【关键点 1】Koa 中间件基于 Promise 链,异步错误通过 Promise rejection 传播。
  7. 【关键点 2】使用 try/catch 或 .catch 方法捕获异步错误。
  8. 【关键点 3】全局错误处理可通过 app.on('error') 监听。
  9. 【关键点 4】错误未处理时 Koa 会返回 500 并记录错误。
  10. 【易错点 1】忘记使用 await 调用异步中间件会导致错误无法传递。
  11. 【易错点 2】在 promise 链中没有捕获 rejection 会导致意外行为。
  12. 【易错点 3】错误响应可能被多次发送,需要避免重复处理。