位置: 编程技术 - 正文

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

  • 海南增值税发票图片
  • 偶然所得税什么时候颁布
  • 发票第二年是否可以作废
  • 收入与支出怎么算利润率
  • 水利建设基金可以按次申报吗
  • 6个点的税率怎么算的
  • 财政拨款收入和财政补助收入的区别
  • 赠送的商品怎么缴纳增值税
  • 库存商品赠送给客户要开票吗
  • 支持住房租赁市场金融新政
  • 固定资产成本包括包装费吗
  • 汇票的票据行为有贴现吗
  • 股权转让中土地增值是否交纳个人所得税
  • 增资扩股如何操作
  • 收到应收的货款的会计分录
  • 附加税的计提基数怎么算
  • 发票所有联次都需要加盖发票章吗
  • 地方附加税
  • 房地产公司成立时间
  • 统借统贷合同需要交印花税吗
  • 装卸增值税税率最新的
  • 公司为职工缴纳的医保不计入账户吗
  • 企业间借款利息账务处理
  • 微信支付宝余额为零的表情包
  • 已报税的发票可以作废吗
  • 签证费会计分录
  • 分配利润给股东怎么做分录
  • 会计的运费怎么写分录
  • 如何解决win7系统蓝牙接收模块影响电脑蓝屏
  • php留言板的简单编写
  • nvcpl.dll是什么
  • 应交税金减免税款
  • Yii使用技巧大汇总
  • 财务管理公司属于什么行业类别
  • php sql语句
  • 蓝湖怎么用的
  • 盘亏结转
  • 企业季度所得税怎么算
  • 一般纳税人销售自己使用过的汽车
  • vue3项目中使用el-dialog
  • 固定资产没有价值怎么入账
  • 认缴制情况下 公司一定要出资到位再注销吗
  • 受托加工收到的材料怎么入账
  • 企业开具劳务费发票怎么开,税率多少
  • 起征点税种
  • 销售旧货和销售使用过的固定资产区别
  • 将一个表中的字段更新到另一个表
  • 权益法下公允价值变动计入其他综合收益
  • 城市维护建设税怎么算
  • 咨询服务业主营业务成本
  • 收到利息收入如何做分录
  • 劳务外包存在的法律风险
  • mysql导入数据语句
  • 在SQL查询中使用WHERE子句指出的是
  • 数据库中alter table的用法
  • macbookpro 钥匙串
  • kcleaner.exe是什么
  • 32位与64位操作系统怎么区分从32位和64位的概念上进行讲述
  • 电脑预读文件
  • xp操作系统入门
  • xp系统打不开电脑
  • win7系统按Ctrl+Shift不能切换输入法的图文教程
  • win8 系统设置
  • win7系统c盘占用空间大
  • win7旗舰版开机
  • node.js wss
  • Clean Empty Directories on Unity3D and Git
  • unity3d总结
  • android 动画分类
  • 计算字符串的长度的函数
  • js与jquery的关系
  • android.view.window.addflags
  • unity打开c#
  • javascript面向对象编程指南
  • 江苏税务个人所得税app下载
  • 个人所得税年申报流程
  • 河北耕地占用税最新规定
  • 对外销售产品
  • 财务制度备案表单怎么填
  • 城镇土地使用税减免税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设