位置: 编程技术 - 正文

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

  • 报税日期是哪月哪天?
  • 应纳税所得额是利润总额吗
  • 记账凭证核算形式需要设置的凭证有
  • 兼职人员工资需要申报个税吗
  • 建设部门罚款会计分录
  • 一般户用途可以是往来款吗
  • 发票只能全部冲开吗
  • 免税商品进项增值税发票怎么做账
  • 快速撕发票的方法有哪些
  • 增值税普通发票有什么用
  • 平均房租
  • 不含税价怎么转化为含税价
  • 固定资产融资租赁账务处理
  • 公司股权平价转让要交税吗
  • 酒店会务费发票税率
  • 公司未分配利润太大,怎么处理好
  • 出租房屋的房产税怎么算
  • 小规模纳税人需要每月清卡吗
  • 危险废物处理费用发票怎么开
  • 为什么查询发票显示查无此票
  • 公司投资另外一个公司全资占股需要什么流程
  • 出口退税挂靠业务如何做帐?
  • 登记为一般纳税人后可以转为小规模纳税人
  • 销售商品会计分录怎么写
  • 税收是财政政策传导机制中重要的媒介之一
  • 清卡处于非征期是什么意思
  • 减免税额科目有没有余额
  • xp系统电脑关机后又重启怎样处理
  • 入库前仓储费用应计入
  • 车辆违章罚款可以报销吗
  • php数组函数 菜鸟
  • 企业支付给员工的一次性伤残就业补助金计入哪项费用
  • 如何设置长期有效的群二维码安卓手机
  • java pdf生成工具
  • php is_executable判断给定文件名是否可执行实例
  • 为什么股本溢价
  • 小规模申报增值税减免税申报明细表
  • spring框架使用教程
  • 循环表是线性表吗
  • dedecms调用页面
  • Mysql数据库查询客户端
  • python 规划求解
  • 个体户可以开多少免税发票
  • 发票冲红和作废有啥区别
  • sql server 2008 r2数据库备份
  • 以摊余成本计量的债权投资与以公允价值计量且其变动
  • 残保金属于职工社保吗
  • 固定资产没有折旧完要转走会计科目
  • 关于消费税的会计处理
  • 环保公司开票内容
  • 应交所得税如何调整
  • 电汇凭证是什么会计科目
  • 新医院会计制度什么时候实施
  • 公账钱怎么取出
  • java程序怎么直接运行
  • MySQL存储过程与触发器
  • win8桌面图标不显示
  • [视频回复]
  • wlanplus是什么软件
  • 电脑系统停用
  • linux pwdx命令
  • windows更新88
  • win7更改电脑设置在哪里
  • centos安装rclone
  • windows7磁盘清理命令
  • ghost7sp1安装教程
  • win7系统电脑怎么连接wifi
  • opengl 变形
  • nodejs调用打印机驱动
  • 创业要看的书
  • scp命令详解(全)
  • JavaScript中数组长度的属性
  • jquery过滤选择器按照过滤规则分类包括?
  • window.showModalDialog谷歌不兼容
  • 使用灭火器时要对准火焰的什么部位喷射
  • javascript字符类型
  • 甘肃国家税务发票查询
  • 江苏国家电子税务局新版本怎么申领发票
  • 税务u盘是干嘛的
  • 如何认真贯彻落实中央八项规定,切实改进工作作风
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设