位置: 编程技术 - 正文

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

  • 先包装后销售
  • 邮政电信业务差距大吗
  • 公司每年网络费计入什么会计科目
  • 什么叫欠账
  • 小微企业印花税减免最新政策
  • 报关单位的信用管理制度
  • 国际贸易公司注册需要什么条件海南
  • 增值税采用
  • 劳务派遣公司代发工资需要开票吗
  • 费用退回怎么做账
  • 租赁公司扣押金
  • 应收账款收回时间怎么体现
  • 房屋维修基金怎么入帐
  • 母子公司可以开具资金占用费
  • 为什么要开增值税
  • 金税盘在电脑上怎么打开
  • 文具代销
  • 海关完税价格表
  • 建筑业外出经营管理办法
  • 劳务派遣差额部分可以开专票吗
  • 新办企业国税报税时间
  • 为什么查询发票显示查无此票
  • 没领税票会产生税吗
  • 如何填制记账凭证总结
  • 质保金付款时怎么付
  • 员工转入子公司怎么做账
  • 简述资产的概念特征以及确认条件
  • 资产折旧出现负数
  • 收到带息商业票据贴现会计处理
  • win10怎么查看电池健康度
  • mac qq音乐怎么下载mp3格式的音乐
  • 三星笔记本预装系统
  • win7系统没有桌面图标怎么办
  • 收到安监处罚款怎么处理
  • 增值税漏洞
  • 如何修复win7系统引导
  • linux系统中的文件访问权限包括几种
  • 收到退款发票的分录
  • 未分配利润转增股本 母公司会计分录
  • 库存股的会计科目
  • 滞纳金和罚金计入哪个会计科目
  • lsass.exe是什么进程
  • 如何挽留婚姻危机
  • php操作步骤
  • 无法支付的货款如何处理
  • 微信小程序登录后端
  • mysql刷新数据
  • 微信小程序从零
  • 计提坏账的比例是多少
  • vue项目创建流程
  • 产品检测费计入现金流量表什么项目
  • 资产负债表中应收账款的计算公式
  • 增值税抵扣进项税额什么意思
  • c语言realloc函数的用法
  • 买轿车产生的服务费用
  • 资产减值损失账户核算内容
  • 房屋出租收到的发票
  • 服务费的发票税率是多少
  • 经营性罚款和行政性罚款的区别
  • 对公账户发票和普通发票不一样吗
  • 支付技术研究开发费
  • 员工罚款从工资中代扣
  • 出国人员差旅出差补贴标准
  • 转租收入如何入账
  • 独立核算和非独立核算增值税
  • 稳岗补贴如何入账
  • 税控盘的主要功能
  • 公司注销记账凭证还有用吗
  • sql server语句查询
  • 腾讯云 阿里云 营收对比
  • 昂达主板插线安装图解
  • windows8.1安装windows7
  • mac如何访问win10文件
  • sesvc.exe是什么进程
  • windows8用的人少
  • win10系统日历怎么放在桌面
  • android自学
  • jquery中each()方法的作用及使用
  • 税务公众电话
  • 个人所得税怎么换手机号绑定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设