フロントエンド非同期プロセス

3548 ワード

フロントエンドの非同期プロセス(重要)
  • 従来の原生非同期
  • コールバック関数
  • イベント
  • 非同期プロセスツール(他の人がカプセル化したもの)を使用する
  • es6 Promise
  •   Promise             ,        –       --       。           ,ES6         ,     ,     Promise
    
        Promise ,         ,                (         )   。     ,Promise     ,             。 
      Promise            
    
          :
    
      pending:   
      fulfilled :    
      rejected     
          : 
      Promise       ,      :
    
       pending  fulfilled
       pending  rejected。
               ,      ,     ,     resolved(   )
    
  • es 6 generator関数
  • es 6(7)async関数
  • node.jsのnextTick setImmudiate
  •   nextTick()              setImmediate();
    
      process.nextTick()  idle   ,setImmediate()  check   .         ,idle     I/O   ,I/O     check   .
    
            ,process.nextTick()             ,
      setImmediate()           .
          ,process.nextTick()                     .
       setImmediate()                  .
    
    
      nextTick >      > setImmediate
    
  • サードパーティのasync.jsライブラリ

  • まとめ:非同期プロセスのタスクは非同期キューに配置され、非同期キューはメインスレッドの実行が完了した後にのみ実行されます.参考資料
  • Promise https://blog.csdn.net/MrJavaweb/article/details/79475949
  • Generator https://www.cnblogs.com/imwtr/p/5913294.html
  • Async-await
  • Node.jsのnextTick()とsetimmediate()https://www.cnblogs.com/5ishare/p/5268273.html
  • asyncライブラリhttps://caolan.github.io/async/

  • 参考文献Event-loophttp://www.ruanyifeng.com/blog/2014/10/event-loop.html?bsh_bid=983729729史上最も読みやすいPromise/A+完全実現https://zhuanlan.zhihu.com/p/21834559