JavaScript非同期プログラミングの4つの方法

1299 ワード

fn 1()の実行が完了したら、fn 2()を実行したいです.
  • コールバック関数
  •     /*
        *callback     
        */
        function fn1(callback) {
            setTimeout(() => {
                console.log(  fn1,     ,   fn2)
                callback()
            });
        }
        function fn2() {
            console.log(  fn2);
        }
        fn1(fn2);
    
  • 時間傍受する別の考え方は、イベント駆動モードを採用することである.タスクの実行はコードの順序に依存せず、あるイベントが発生するかどうかに依存します.
  • fn 1.on(‘done’,fn 2)
    fn 1がdoneイベントを発生したとき、fn 2を実行する.
      function f1(){
    
        setTimeout(function () {
          // f1     
              //  fn1   
          f1.trigger('done');
    
        }, 1000);
    
      }
    
  • リリース/購読モード
  • 完了イベントを信号として仮定することができます.「信号センター」があります.タスクの実行が完了したら、信号センターに信号を送ることができます.他のタスクは信号センターに「購読」(subscribe)という信号があります.いつから自分で実行できるか分かります.これは「公開/購読モード」と呼ばれ、また「観察者モード」とも呼ばれています.
    このモードは様々な実装があり、以下はBen AlmanのTinPub/Subを採用しています.これはjQueryのプラグインです.
       //  ,fn2 "    "jQuery  "done"  。
      jQuery.subscribe("done", fn2);
    
      function fn1(){
    
        setTimeout(function () {
          // f1     
          jQuery.publish("done");
              //jQuery.publish("done")    ,f1     , "    "jQuery  "done"  ,    f2   。
        }, 1000);
      }
    
    fn 2は、jQuery.unsubscribe(「done」、f 2)の購読をキャンセルすることもできる.
  • Promisesオブジェクト