异步有序问题的解决

1、使用回调函数 ===》回调地狱,不便于代码的阅读和修改

2、Promise

  (1)、  new Promise( )
    promiseValue
        通过resolve传递的参数
        Promise.resolve(value)
            返回一个以定值解析后的promise对象
            三种情况:
                1、普通值
                2、promise对象
                3、thenable对象


(2)、.then( )

    new promise 执行完毕,执行 .then的代码
    返回值是一个promise对象,初始状态是pending
    监听器被触发,监听函数执行完成后,
    返回的promise对象的状态发生改变,
 (如果返回一个值,则会成为返回的promise对象的value)
   改变的情况由监听函数的执行返回值决定

3、生成器 generator
    function* genFn(){ 函数体  }   生成器函数
    let gen = genFn();  调用生成器函数得到生成器
    gen.next( );生成器的next方法,将生成器分段调用
        结果对象
            next方法调用不仅仅使函数分段调用了,还得到一个结果对象,包含value属性和done属性
        yield
            生成器函数分段的关键字,后面跟一个value值,就是结果对象的value值

4、ES7  async  await

相关推荐