关于请求超时中的promise问题

来源:6-2 错误处理- 网络错误+超时错误+非200状态码+demo

weixin_慕娘0150263

2021-11-25

图片描述
图片描述
可以看到是先打印出了timeout,那应该是先执行reject(),promise状态改变为rejected,但是结果却是先执行了resolve(response),reject里面的错误并没抛出,这是什么原因呢,老师

写回答

1回答

ustbhuangyi

2021-11-25

你在各个分支都加上 debugger 断点调试一下看看呢?

0
1
weixin_慕娘0150263
ok,问题已经解决了,因为请求超时时先触发 ontimeout 后触发 onreadystatechange,onreadystatechange 里的reject覆盖了 ontimeout 里的reject,导致我没有看见 ontimeout 里抛出Error。谢谢了
2021-11-25
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程