JavaScript回撥函式

劉遠山發表於2020-10-08

回撥函式和處理非同步

回撥函式指的是當一個函式作為另一個函式的引數時,作為 引數的函式就是一個
回撥函式,回撥函式應用最廣泛的就是處理非同步問題 

例項

<script>

   /* var res;
    function a(){
        setTimeout(()=> {
            res = 5
        },1000)
    }
    function b(){
        console.log("我要拿到a函式計算後的結果"+res);
    }
    a();//需要1秒後才能拿到Res的結果
    b();//不會等1秒,而是直接執行*/
    //----------------- 錯誤處理方式1
    /* var res;
     function a(){
         var res;
         setTimeout(() => {
             res = 5
         }, 1000);
         return res;//這個結果也不會等1秒,而是直接返回了undefined
     }
     function b(){
         console.log("我要拿到a函式計算後的結果"+ a());
     }
     b();*/
    //------------------錯誤處理方式2
     /*function a(){
         var res;
         setTimeout(() => {
             res = 5;
             return res;
         }, 1000);
     }
     function b(){
         console.log("我要拿到a函式計算後的結果"+a());
     }
     b();//是直接執行的,不會等a函式返回以後再執行*/
    //---------------正確的回撥方式1-----------
     /*function a(callback){
         var res;
         setTimeout(() => {
             res = 5;
             callback(res);
         }, 1000);
     }
     function b(r){
         console.log("我要拿到a函式計算後的結果"+r);
     }
     a(b);*/
    //--------------正確的回撥方式2--------------
    var res;
    function a(callback){
        setTimeout(() => {
            res = 5;
        callback();
    }, 1000);
    }
    function b(){
        console.log("我要拿到a函式計算後的結果"+res);
    }
    a(b);//回撥函式的寫法,將函式名作為另一個函式的引數
</script>

相關文章