位置: 编程技术 - 正文

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

  • 为什么税务申报要补缴
  • 企业纳税人是什么
  • 待摊费用和无形资产摊销
  • 等线补交以前年度附加税会计分录
  • 实际已缴纳所得税额不自动带出
  • 小微企业减免增值税申报表填写
  • 通信服务费包括哪些
  • 不能够满足标准的产品为不合格品
  • 会计去报税流程
  • 项目资本金是什么意思大白话
  • 利息支出手续费
  • 买一赠一怎么确定真假
  • 税控设备抵减如何填写报表
  • 生产性生物资产是什么意思
  • 生育津贴的相关法律规定
  • 本月的应收账款,实际到下个月了会怎么样
  • 建筑业销项税和进项税计算
  • 公司购买电脑流程怎么做
  • php基础语法
  • linux中cw
  • PHP:session_name()的用法_Session函数
  • php require的用法
  • TypeError: Cannot read properties of null (reading ‘insertBefore‘) vue项目报错
  • java deep learning
  • 企业解除人员什么意思
  • win10系统的安装
  • ci框架教程
  • 税控盘用来干嘛的
  • 法人从公账上取款会计分录
  • 简单描述php中的数组
  • vue解决异步取值问题
  • 图表库网站
  • gawk命令 模式扫描与处理语言
  • sync命令是什么意思
  • 安全文明措施费比例
  • 微信转账要如何退回去
  • 物流货运发票要交税吗
  • 免税农产品怎么抵扣进项税
  • 红字记账是什么意思
  • 送货单需要跟在凭证后面吗
  • mongodb安装教程图解
  • 发票冲红如何进入系统
  • 工商企业年报网上申报流程
  • 买新车检测费
  • 单位收到已交个人社保
  • 租赁房屋怎么做账
  • 坏账准备的账务处理会计分录
  • 购买税控盘的账务处理
  • 递延所得税负债会计分录
  • 无形资产与固定资产一样都会存在实体性贬值
  • 快递做账用什么软件
  • 福利费专票分录
  • 暂估固定资产的账务处理
  • 销售佣金 会计科目
  • 物业管理企业应设置代管基金和代收款项账户
  • mysql5.7bug
  • 开机无法进入桌面,无法调用资源管理器
  • Windows设置启动引导
  • centos 安装
  • fedora 版本
  • win10怎么获取
  • windows中输入法的安装步骤
  • appservicesdkscripterror
  • 硬盘安装win8.1
  • hp是什么代码
  • windows7如何设置双屏显示
  • win7系统桌面不能新建文件夹
  • windows mobile
  • linux就该这么些
  • opengl画曲线
  • react native community
  • cocos2dx4.0入门
  • nodejs调试指南
  • 使用 jQuery.ajax 上传带文件的表单遇到的问题
  • JavaScript快速排序
  • python 解析
  • 税务工作创新
  • 税控发票开票软件金税盘版发票未报送什么情况?
  • 南昌契税政策
  • 济南市土地使用税申报表怎样作废
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设