位置: 编程技术 - 正文

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金额加减)

  • 已注册登记的机动车有什么情形的
  • 发票丢了还能再开么
  • 固定资产投资损失怎么做账
  • 经营性应收项目和经营性应付项目
  • 变更企业性质企业怎么办
  • 小规模跨年发票可以入账吗
  • 因小数点造成的误差称为
  • 材料税款抵扣
  • 付的押金能要回来吗
  • 纳税人和征税对象的区别
  • 企业所得税的减按征收如何计算
  • 变更办税人需要原办税人去吗
  • 房地产土地增值税筹划
  • 应交税费的期初余额是借还是贷
  • 企业的其他业务成本包括什么
  • 应补退所得税额是什么
  • 收到应收票据应该确认收入吗
  • 施工企业代甲方购材料的账务处理?
  • 按揭的车可以只买交强险吗
  • bios密码忘记了怎么清除,放电不行
  • 固定资产进项税额怎么做账
  • 增值税红字发票申报表怎么填
  • 荣耀x10的鸿蒙系统怎么开启
  • 腾讯电脑管家中的软件搬家
  • PHP:mb_send_mail()的用法_mbstring函数
  • windows待机密码
  • 核定征收的企业利润怎么处理
  • linux直接运行jar
  • PHP:curl_file_create()的用法_cURL函数
  • 当月认证了发票但没有进行增值税申报
  • 超市收取进场费会计分录
  • 伦德格伦
  • 公司购买邮票计入什么科目
  • 纳税申报方式的税务申报工作常规流程图
  • 出国考察是什么意思
  • 集群怎么写
  • 基建账并账规定
  • vue2计算属性和vue3的计算属性的区别
  • laravel5创建service provider和facade的方法详解
  • linux查询ifconfig和cd命令的完整文件名
  • 赠品发票金额为零怎么办
  • 报表中的盈余公积怎么算
  • linux中ubuntu安装教程
  • 项目支出可以列支差旅费吗
  • 合同权益如何进行转让
  • sqlServer查询当前ip地址
  • sql 文件存储
  • 以前年度的应收账款收不回来怎么办
  • 费用报销单如何粘贴票据
  • 发票普通发票
  • 分公司出现法律问题谁负责
  • 公司实行全成本核算工资怎么算
  • 经营范围中没有这个项目开票后果
  • 公司转帐支票可以转账吗
  • 租入的厂房
  • 工程造价咨询公司招聘
  • 如何定义是应付还是应付
  • 企业试生产时间规定
  • 工业企业材料入库账务处理
  • solaris init 0
  • linux查看可执行命令
  • 做ghost备份
  • 如何显示文件后缀win10
  • ubuntu18.04没有声音
  • centos7tar解压
  • window10应用商店
  • windows8 应用商店
  • win10正式版声音不正常
  • perl do
  • angular 图片懒加载
  • 推荐javascript教程
  • python如何获取
  • js类的定义方法
  • 设置自定义
  • android获取sha1
  • 2020年职工探亲路费报销最新规定
  • 上海税务网厅
  • 重庆沙坪坝区沙磁巷幼儿园
  • 美国各地区消费水平
  • 承租房变更承租人申请怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设