zoukankan      html  css  js  c++  java
  • ES6异步操作之Promise

    一直以来觉得异步操作在我心头像一团迷雾,可是它重要到我们非学不可,那就把它的面纱解开吧。

    ES6 诞生以前,异步编程的方法,大概有下面四种。

    • 回调函数
    • 事件监听
    • 发布/订阅
    • Promise 对象

    异步:简单的说:执行顺序不是一次连续完成的,中间加入了其他的程序运算,等第一阶段准备好了数据,再返回来进行计算。

    来看看阮一峰老师es6入门中讲的的

    反复读几遍,真的就完全了解了什么是异步。

    Promise是异步编程的解决方案,所谓Promise,简单说就是一个容器,里面保存着未来会结束事件的结果(也就是异步操作的结果),Promise是一个对象,从它可以获取异步操作的信息。

    基于上面读取文件和处理文件的例子而已,Promise充当的角色就是,“再接着执行任务的第二段(处理文件)”,处理文件就可以看出一个大的盒子,Promise要做到事情就是操作信息,保存执行的结果。

    特点

    1. 有三种状态panding(进行中),fulfilled(已成功)和rejected(已失败),状态不受外界影响
    2. 一旦改变状态就不会在变(resolved(定型))

               panding >>>fulfilled

       panding>>>rejected

    优点

      有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数

    缺点

    1. 无法中途取消
    2. 不设置回调函数,promise内部抛出错误,不会影响外部
    3. 当处于pending无法知道进展到哪一

    基本用法

      分享一段实际开发中的代码,在结合理论知识,估计你就知道了基本用法,和内置方法是如何使用了。

      

  • 相关阅读:
    同花顺笔试碰到的一道前端编程题
    闭包会造成内存泄漏吗?
    动态添加和删除节点元素,函数封装
    58同城2018校招前端笔试题总结
    拼多多2018提前批前端笔试总结
    根据字符串字符的个数排序输出
    ES6数组对象新增方法
    【转】浅析BFC及其作用
    《具体数学》学习笔记
    KMP总结
  • 原文地址:https://www.cnblogs.com/cqy1125/p/11384450.html
Copyright © 2011-2022 走看看