异步有序问题的解决

Posted freeland

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步有序问题的解决相关的知识,希望对你有一定的参考价值。

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

以上是关于异步有序问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

JS异步

并发编程-Java内存模型:解决可见性与有序性问题

Python | 有序序列中元素的查找问题解决方法

iCloud不支持有序集..替代解决方案?

JS不使用async/await解决数据异步/同步问题

JS不使用async/await解决数据异步/同步问题