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

onload、onerror与onloadend事件的触发顺序是否有明确规定?

FileReader/XMLHttpRequest中onload/onerror与onloadend的触发顺序说明
  • 触发顺序是完全确定的:onload或onerror一定会先于onloadend执行,不存在随机触发的情况。
  • 这类API的事件触发逻辑是标准化的:
    • 当操作成功完成时,先触发onload,随后触发onloadend
    • 当操作失败时,先触发onerror,随后触发onloadend

你完全可以把onloadend看作Promise里finally语句的等价物——不管操作最终是成功还是失败,onloadend都会执行,非常适合用来做统一的收尾工作,比如隐藏加载状态、清理临时数据、释放占用的资源等。

举个实际的FileReader示例:

const reader = new FileReader();
reader.onload = () => {
  console.log('文件读取成功');
};
reader.onerror = () => {
  console.log('文件读取失败');
};
reader.onloadend = () => {
  console.log('读取流程结束(成功失败都会走到这)');
};
// 开始读取文件
reader.readAsText(yourFile);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:05:19