位置: 编程技术 - 正文

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

  • 差额征税的会计处理方法
  • 补缴以前年度附加税如何入账
  • 机械租赁属于什么分类
  • 产品模板是固定的吗
  • 财务报表年报怎么更正
  • 净流动负债和流动负债
  • 附加税减半征收政策从什么时候开始
  • 公积金需要每月缴纳吗
  • 计提代扣代缴个人缴纳的社会保险费分录
  • 建筑施工企业收到工程款会计分录
  • 成本组成计税价格公式
  • 合并报表的抵消分录要做账吗
  • 出口抵内销产品应纳税额分录
  • 不能够满足标准的产品为不合格品
  • 建安业核定征收利润率
  • 增值税计提金额
  • 应纳税所得额和应纳税额的区别
  • 建筑公司材料费属于什么科目
  • 进项税和销项税的借贷方向
  • 往来款核销需要如何确认
  • 冲上年收入会计分录
  • 发票收到本月进账怎么办
  • 个税经营所得申报怎么更正
  • 怎么检查windows版本
  • win10电脑和win7电脑怎么共享文件
  • 固定资产资产评估
  • 外包公司代缴的税怎么算
  • 价外费用分录
  • 财政部土地出让收支管理办法
  • 增值税专用发票的税率是多少啊
  • 基西米河生态退化原因
  • 微软 gcr
  • 谷歌浏览器调试窗口怎么放下面
  • javascript常用的数据类型
  • 实发工资知道如何发放吗
  • 税务自查报告要盖什么章
  • 如何修改php网页内容
  • 公司资金转到法人帐户
  • 机关事业单位以外包服务方式长期用工
  • 13个点的普票可以抵税吗
  • 机器设备计提折旧纳税调整
  • 购车的车辆购置税计入固定资产可以所得税一次性扣除吗
  • 原材料的对应账户有哪些
  • 以公司名义买500万的车省多少税
  • 药品的增值税税率13%还是17%?
  • 水利建设专项基金土增税清算能扣除吗
  • 电子产品对外加工
  • 医院销售药品是否缴纳增值税
  • 工程结算在资产中的作用
  • 自产产品对外捐赠确认收入吗
  • 模具维修费用清单表格
  • 采购入库单如何弃审U8
  • 哪些行业不适用作业法
  • 根据《物业管理条例》的规定,物业服务企业
  • 车辆保险发票能补开吗
  • mysql中一个普通ERROR 1135 (HY000)错误引发的血案
  • windows 2000 server系统安装图解
  • 禁止Windows 打游戏怎么办
  • 什么叫另类
  • windows10预览版怎么样
  • dell t110服务器
  • win7看视频黑屏有声音
  • centos设置永不待机
  • qq突然显示windows登录
  • windowsxp的设置在哪
  • win8的开始
  • 笔记本win7电源已接通未充电怎么办
  • win10如何彻底关掉自动锁屏
  • Node.js中的什么模块是用于处理文件和目录的
  • node.js web
  • angular使用
  • nodejs ejs
  • Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
  • 甘肃省网上税务登记流程
  • 医保属于地税还是国税
  • 重庆市国家税务局电子税务局官网
  • 安庆税务局窗口电话
  • 广东国家税务局电子税务局官网入口
  • 郑州二套房契税征收2023标准是多少
  • 河南省地税局副局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设