位置: 编程技术 - 正文

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

  • 资产负债表应交税费
  • 房屋租赁如何开增值税专用发票
  • 增值税税额怎么算出来
  • 小规模纳税人认定的最新标准2022
  • 关税的完税价格是什么意思
  • 增值税普通发票和电子普通发票的区别
  • 内含报酬率与必要报酬率相等
  • 公司给员工发放福利的说辞
  • 部分产品退货怎么办
  • 住宿开发票的税率是多少
  • 金税盘服务费能抵税吗
  • 土建工程管理费取费基数
  • 摊销折旧是什么意思
  • 国债和国债期货的交割价是净价还是全价?( )
  • 建筑资质挂靠费用怎么写会计分录?
  • 受托软件开发不转让著作权的账务处理
  • 共同投资叫什么
  • 存货周转天数一般在多少为合适
  • 财会人员
  • 企业可以申请停缴社保吗
  • 公司的招标代理费计入什么科目
  • 免税销售额计入主营业务收入吗
  • 普通发票和增值税专用发票有什么异同
  • 房地产企业预收款什么时候确认收入
  • 核销以前年度的其他应付款
  • 错误代码11-1114
  • 企业预收账款缴哪些税
  • 如何使用php编程软件
  • 出租车发票没有发票专用章是否能报销
  • 截图快捷键ctrl+alt+
  • 企业收到分红款是免税收入吗
  • 处置工程物资取得净收益
  • php实现图片上传显示
  • 员工购买住房公积金申请
  • 固定资产的减值准备,一经确认,不得转回
  • 采用权益法核算
  • 公司日常流水账
  • web前端面试常见问题
  • wordpress静态分离
  • 激光器原理及应用
  • node深入浅出pdf
  • 前端进阶教程
  • 城投公司政府购买棚改
  • rm 删除某个文件
  • 应交所得税的科目是什么
  • 员工福利费的账务处理
  • 年收入1500万是富人吗
  • 中标的费用怎么算
  • 门面出租需要什么手续
  • 办理税务登记变更委托书怎么写
  • 内账的账务处理
  • 应付职工薪酬在利润表哪里体现
  • 增值税专用发票几个点
  • 农村信用社可计算利息吗
  • 用友T3如何取消审核人和制单人不能为同一
  • 以前年度损益调整是什么意思
  • 冲减以前年度营业外收入分录
  • 固定资产以提足金为准吗
  • 企业安装电子监控收费吗
  • 用友t3月末转账流程图
  • 背书转让为什么记应收票据
  • 会计及库管岗位职责(要求)
  • freebsd使用
  • linux系统中怎么全选
  • softmangerlite.exe是什么进程 有什么用
  • centos删除vg
  • linux0.11文件系统
  • centos6.5桌面版安装教程
  • leerfel是什么牌子
  • css动态网页
  • qt底层绘图引擎
  • oracle sql mysql
  • github比较火的项目
  • python向oracle写入
  • jquery轮播图自动播放
  • python smtplib模块详解
  • 重庆市国家税务局电子税务局官网
  • 如果贸易后y产品的相对价格下降很大的话
  • 河北税务云办税厅官方
  • 农村信用社升级为什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设