位置: 编程技术 - 正文

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

  • 税额怎么调整
  • 实收资本印花税如何申报
  • 个人可以申请代收货款吗
  • 酒店物业费收取标准2019
  • 发票红冲需要做账吗
  • 认缴后怎么才算实缴
  • 什么叫欠账
  • 现金余额本月金额和本年累计金额怎么填
  • 出口退税正式申报撤销申请
  • 残保金什么样的企业要交
  • 零息债券支付利息吗
  • 房屋改造工程怎么计入固定资产
  • 会计核算形式
  • 生产企业购进的用于生产的机器设备
  • 生产型企业付的消防年检费记什么科目
  • 制造费用属于哪一类科目
  • 分销佣金分配
  • 固定资产退回账务处理规定
  • 公司买车可以抵什么税
  • 原始凭证分割单可以税前扣除吗
  • 金蝶用户管理怎么设置
  • 当月税负率怎么算
  • 专用发票抵扣联丢失怎么办最新规定
  • 承兑汇票重复背书
  • 银行要求的补偿性余额所占比例为20%
  • 食堂买菜怎么算
  • 什么叫经济作物和粮食作物
  • 结转已售材料成本600元会计分录
  • php连接sqlserver2008
  • 天猫收取的三大费用
  • 现金被盗计入什么科目
  • PHP aes (ecb)解密后乱码问题
  • php字段
  • thinkphp smarty
  • framework7教程
  • php和apache
  • 房产税和城镇土地使用税需要计提吗
  • uniapp微信公众号授权
  • 提取备用金记账凭证图片
  • php use关键字
  • gps定位器怎么开启
  • 报废产品需要入库吗
  • 小规模纳税人出租不动产税率是5%还是3%
  • 印花税申报未扣款在哪里查询
  • 认证系统维护费怎么算
  • 购买保健食品
  • 帝国cms怎么调用文章随机段落
  • 理财产品分红和收益
  • sql语句批量更新
  • 房屋维修基金帐户处理办法
  • 复利年金的区别
  • 权益法核算投资收益纳税调整
  • 公司注销前如何先注销工会
  • 公司股权作价转让会计分录案例
  • 冲减成本费用
  • 坏账收回所得税需要确认收入吗汇算清缴表如何填报
  • 工程材料票占工程款的比例
  • 进出口总额用什么字母表示
  • 退票费凭证可以用于报销吗?
  • 跨年材料票可以入账吗
  • 如何设置自动登录密码
  • 电脑程序在运行桌面不显示的解决方法
  • ahqinit.exe是什么进程 ahqinit是安全的进程吗
  • windows+ctrl+m
  • windows xp怎么清理c盘
  • ubuntudde 中文
  • win7任务栏窗口总是自动切换
  • kprcycleaner.exe是什么
  • win10系统内置应用软件有哪些
  • vue如何处理跨域
  • shell section
  • js实现功能
  • jq easyui
  • unity动画教程
  • javascript中的函数该如何理解
  • 用javascript
  • jquery访问本地html
  • 中国税务精神内容英文
  • 卷式发票如何查验真伪
  • 北京国税局开票流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设