位置: 编程技术 - 正文

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

  • 按适用税率计税销售额和按简易办法计税销售额
  • 企业所得税是什么意思大白话
  • 普通发票税额没有打印全可以用么
  • 劳务税能退税吗现在
  • 资金占用费税前扣除比例
  • 员工回家探亲的文案
  • 街道办事处发票抬头写什么
  • 一般纳税人科技公司发票是几个点
  • 企业所得税1季度申报季初从业人数个税所属期12月
  • 利润总额与毛利的区别
  • 个人所得税生产经营所得税率
  • 金税盘全额抵扣申报流程
  • 模具费进研发费用还是成本
  • 个人购买商铺如何缴税
  • 公司内帐和外账的区别
  • 电子承兑背书失败是怎么回事
  • 预收电费怎么做会计分录
  • 公司为什么要成立工会委员会
  • 外单位人员能在单位借款吗
  • 主营业务收入写不写明细
  • 出口企业进项税额转出怎么理解
  • 利润表的上期金额和本期金额之间的关系
  • 小规模纳税人季度超过30万怎么纳税
  • 水利建设基金多交可以退么
  • 股东放弃债权账务处理
  • 自然报废产生的固定资产净损失计入什么科目
  • mac打印机状态暂停怎么处理
  • 如何不同版本复制粘贴
  • 购买商品接受劳务的现金流包括哪些
  • 个体户需要交钱吗
  • 王者荣耀电脑版怎么键盘操作
  • 如何关闭win11系统
  • 工作流activity
  • 户外广告位怎么收费
  • yolov教程
  • 在暴风雪中翻译
  • 房改转移什么意思
  • 租赁收入确认时点
  • php的二维数组
  • 销售金额环比
  • javascript 高级教程
  • linux vimdiff命令
  • python中有很多包管理工具
  • 一般纳税人哪些行业可以简易计税
  • c语言中数组怎么用
  • 以前年度损益调整会计分录
  • 印花税怎么交,在哪里交
  • 充电桩的安装费是多少
  • 存货报废应如何进行账务处理
  • 单位购买的化妆品怎么用
  • 小规模纳税人未开票收入如何申报增值税
  • 个体工商户需要给员工交社保吗
  • 已开普通发票记账联丢失怎么办?
  • 投资公司如何运作
  • 员工食堂买菜怎么写分录
  • 未开票收入如何计提增值税
  • 企业逾期贷款利息影响征信吗
  • 流动资产周转次数计算公式
  • 小规模纳税人销售自己使用过固定资产
  • 从基本存款账户划款3万元 向开户银行转帐
  • 红字发票可以跨月入账吗
  • 对账和结账的步骤及要求
  • 企业偿债能力的含义
  • 净资产总计等于什么
  • mysql怎么实现
  • sql中nullif
  • win10怎么用xp经典主题
  • 安装最新的powershell,了解新功能和改进
  • linux中使用grep命令显示包含特殊字符的行
  • win8怎么添加wifi
  • win8纯净版32位
  • linux运行级别有几种
  • opengl读取obj文件
  • Android shape画圆
  • shell常用命令及示例
  • shell脚本自动执行
  • python打印出none
  • python内建函数 代码
  • 税务检查的程序
  • 武汉代账公司一般怎么收费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设