一次由 AbortController 引发的 unhandledrejection 排查记录
前端项目里用 fetch 做请求取消的场景越来越常见,尤其是搜索框输入防抖、路由切换或者组件卸载的时候,如果不把进行中的请求取消掉,轻则状态错乱,重则控制台一直往外抛 unhandledrejection。前阵子我在一个后台项目里就碰到了这么个事:用户快速切换标签页,每个标签页初始化时都会发一次列表请求,网络慢的时候切换五六次,控制台就会冒出 AbortError: The user aborted a request 的未处理拒绝。诡异的是,这些错误完全不影响页面功能,但 sentry 里一下子堆了几百条告警。排查后发现根因不在请求本身,而在取消后的错误处理链路:AbortControlle...