欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端异步流程工具

程序员文章站 2022-03-09 23:39:33
...

前端异步流程工具
传统:
回调函数
流行:

  1. Promise
              const p1 = new Promise ( function ( resolve ,reject  ) {
                resolve( ' 任务1' );
                } )
                .then( function ( data ) { 
                  console.log( data );
                } )
    
                const p2 = new Promise ( function ( resolve ,reject  ) {
                  setTimeout( function(){
                    resolve( ' 任务2' );
                  } ,1000 )
                  
                  } )
                  .then( function ( data ) { 
                    console.log( data );
                  } )
                  
              console.log( '主线程' )
              Promise 
                    .all([p1,p2])     // 先执行all中所有任务, 执行完成之后再去执行后面的任务
                    .then( data => {
                      console.log( '任务3' )
                    })
                  Promise
                    .race([p1,p2])  // race  谁快输出谁
                    .then( data => {
                      console.log( '任务3' )
                })
    
      ````
    
    2. Generator函数
    
  • 概念, 在function 关键字后面写一个* ,表示一个generator函数
    generator通过 yield 关键字来定义任务

                    function* p1 () {
                  yield '任务1';
                  yield '任务2';
                  yield '任务3';
                  yield '任务4';
                  yield '任务5';
                  yield function* p2() {
                    yield '任务7'
                  }
                  return '任务6'
                }
    
                var p = p1()
    
                console.log(p.next())
                console.log(p.next())
                console.log(p.next())
                console.log(p.next())
                console.log(p.next())
                console.log(p.next())
                console.log(p.next())
    
    1. Async函数
    2. Node.js nextTick setImmidate
    3. 第三方 async.js 库
相关标签: 异步