位置: 编程技术 - 正文

javascript下使用Promise封装FileReader(js的prepend)

编辑:rootadmin

推荐整理分享javascript下使用Promise封装FileReader(js的prepend),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js使用promise,javascript prop,js使用promise,javascript prop,js使用promise,js使用promise,javascript prop,js prev(),内容如对您有帮助,希望把文章链接给更多的朋友!

Promise 在处理异步的时候是个很好的选择,可以减少嵌套层次,让代码更好读,逻辑更清晰。ES6 将其加入规范,jQuery 3.0 也修改实现向规范靠拢(3.0 发布公告)。一些新增元素比如 .fetch() 原生就 “thenable”,不过大多数以往的 API 还要依赖回调,这个时候,我们只要将它们重新封装,就能避开嵌套陷阱,享受 Promise 带来的愉悦体验。

Promise 一般用法先来看下 Promise 的一般用法。

Promise 的驱动模型并不复杂:任何操作,假定它只有两个结果,成功或者失败。那么只需要在合适的时间调用合适的程序,进入合适的后续步骤即可。.then() 顾名思义,就是下一步的意思,当前面的 Promise 有了结果——即调用 resolve 或者 reject——之后,就启动对应的处理函数。

Promise 实例创建后就会开始执行,判定结果需要我们自己来,比如加载成功,或者满足某个条件,等等。通过串联 .then() 则可以完成一系列操作。每次调用 .then() 都会创建一个新的 Promise 实例,它会静静等待前面的实例状态改变后再开始执行。

javascript下使用Promise封装FileReader(js的prepend)

封装 FileReader接下来开始封装。思路很简单,FileReader 除了提供各种 read 方法,还有几个事件钩子,其中 onerror 和 onload 很明显可以作为判断任务是否完成的依据。加载成功的话,就需要用到文件内容,所以将文件或文件内容传递到下一步也十分必要。

最后完成的代码如下:

为了能真正派上用场,里面还有一些验证文件类型的操作,不过跟本文主旨无关,略过不表。这段代码的核心是创建一个 Promise 对象,等待 FileReader 读取完成后调用 resolve 方法,或者出现问题时调用 reject 方法。

使用刚才封装好的函数接下来就可以在项目中使用了:

.then() 支持两个参数,第一个在 Promise 成功时启动,第二个自然在失败时启动。用 .catch() 可以实现同样地效果。Promise 的好处除了可读性更佳以外,返回的 Promise 对象还可以任意传递,继续进行链式调用,有很大想象空间。

继续 .then()于是我们不妨串联更多操作(本来想写个断点续传的,回头再说吧):

全选复制放进笔记reader(file)

标签: js的prepend

本文链接地址:https://www.jiuchutong.com/biancheng/380392.html 转载请保留说明!

上一篇:javascript每日必学之循环(javascript例题)

下一篇:js下将金额数字每三位一逗号分隔(js金额加减)

  • 增值税发票开票软件金税盘
  • 非营利组织免税资格认定申请表
  • 分期收款销售的基本业务处理
  • 专用发票只能公对公吗
  • 企业对公账户钱怎么取出来
  • 减半征收附加税会计分录
  • 亏损 纳税
  • 在登记账簿时,应在记账凭证上注明所记账簿的页数
  • 应收账款计提坏账后收回的会计分录
  • 当月未开发票增值税怎么报
  • 出口退税未收汇已申报
  • 大米加工厂加工技术培训总结
  • 私人企业的资金来源
  • 小规模企业可以开电子专用发票吗
  • 增值税发票当期能抵扣吗
  • 哪些情况下超市销售发霉食品免责
  • 企业注册资金需要拿钱出来吗
  • 初级备考心得总结
  • 施工单位临时设施的搭建费属于
  • 减免税款未抵扣增值税
  • win7系统中英文切换快捷键
  • Win11 Dev Build 22000.65开发预览版推送(附更新修复已知问题汇总)
  • 等值货币什么意思
  • 个体户升一般纳税人分红怎么交税
  • php密码加密和解密
  • 公司支付的赔偿金要扣税吗
  • 房产开发企业涉及税种
  • 应收账款怎么做分录
  • 职工工伤住院费用记什么科目
  • php实现文件的下载
  • php正则表达式匹配字符串
  • thinkphp教程
  • php headers
  • 消费者如何鉴别美的乐享三代风管机
  • 税前扣除是什么时候
  • 限定性净资产是指什么
  • 爬虫工程师简介
  • 企业的管理费用占比
  • 怎么向银行申请贷款
  • 预付账款后收到货物会计分录
  • phpcms api
  • 应交增值税如何计算,如何进行会计处理
  • 新会计准则基本准则
  • 金融商品转让和贷款服务
  • 印花税的缴纳
  • 化验委托书
  • 抵债资产如何做债权转让
  • 个人所得税缴纳标准怎么计算
  • 职工教育经费还有什么经费
  • 公司借款私人账户
  • 预计负债是暂时性差异还是永久性差异
  • 固定资产的印花税费计入什么科目里
  • 预付账款的会计处理
  • 对公账户存款利息分录
  • 股东的义务是什么意思?
  • 个税返还申请流程
  • 公司水电费如何做账
  • 财务会计的基本概念
  • SQLserver中cube:多维数据集实例详解
  • sql中出现将截断字符串或二进制
  • 如何创建桌面快捷方式电脑
  • 网站windows
  • windows8.1开机
  • xp系统多了explorer进程
  • win7修改系统版本
  • sesvc.exe是什么
  • win7系统重装后没声音
  • windows7家长控制
  • windowsxp的开始菜单
  • macbook系统怎么用
  • Linux安装完mysql后提示错误无法登陆mysql怎么办?
  • 利用css样式控制文本的字体属性是什么
  • jquery动态设置css
  • SQLite3中文编码 Python的实现
  • unity3d的作用
  • 如何在标题栏显示图片
  • 税款怎么查询
  • 辽宁省疫情期间工资发放标准
  • 浙江国税网上报税
  • 行政事业单位自办食堂规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设