异步的学习

作者: VictoriaZsj | 来源:发表于2019-03-26 11:33 被阅读0次

    1.promise

    2.iterator

    3.genarator

    4.async

    一。promise对象

    ***异步编程的一种解决方案,比传统的回调函数和事件更强大更合理。

    ***promise是一个容器,保存着未来才会结束的事件的结果。

    ***特点:promise对象代表一个异步操作

    1)只有异步操作的结果可以决定当前是哪一种状态,其他操作无法改变

    2)状态改变后就不会再变

    Pending=>Fulfilled(已成功)/Rejected(已失败)  只要这两种情况发生就代表Resolved(已定型)

    与事件不同的是,此时改变已经发生,再添加回调函数,也会立即得到结果。事件是。如果错过了它,再去监听得不到结果。

    ***promise对象可以将异步操作以同步操作的流程表达出来,避免层层嵌套的回调函数。=

    ***promise对象提供统一接口,使得控制异步操作更容易。

    ***Promise构造函数接受两个函数作为参数,分别是resolve和reject。又js引擎提供,不用自己部署。resolve作用是将promise对象的状态从Pending=>Resolved,在异步操作成功时调用,并将操作的结果作为参数value传递出去。reject是将promise对象的状态从Pending=>Rejected,在异步操作失败时调用,并将报出的错误作为参数 error传递出去。

    ***promise 实例生成以后,可以用then方法分别指定Resolved状态和Rejected 状态的回调函数。

    promise.then(function(value){//success},

    function(error){ //failure }

    )

    二。iterator(遍历器,本质上是一个指针对象)和for ...of

    ***js原有的数据结构主要是数组和对象,es6新添加了Map和Set。

    遍历器是这样一种机制:统一的接口机制来处理所有不同的数据结构,任何数据结构,只要部署interator接口,就可以完成遍历操作(依次处理成员)

    ***三个作用

    1)为各种数据结构提供统一的、简便的访问接口。

    2)使数据结构成员能够按某种次序排列。

    3)供for ...of消费

    三。generator函数

    ***可以理解成一个状态机,封装了多个内部状态

    还是一个遍历器对象生产函数,返回一个遍历器对象,依次遍历generator函数内部的每一个状态。

    1)function*funcName()

    2)内部使用yield语句定义不同的内部状态

    四。async函数(generator函数的语法糖)

    将generator函数的星号(*)替换成async,将yield替换成await。仅此而已。

    相关文章

      网友评论

        本文标题:异步的学习

        本文链接:https://www.haomeiwen.com/subject/uexouftx.html