鍍金池/ 問答/HTML/ js的回調(diào)到底是怎樣的一個原理?

js的回調(diào)到底是怎樣的一個原理?

學習node.js新手一名,想大概知道回調(diào)到底是怎樣一個原理。
比如這段異步回調(diào)的代碼:


function abc(err, data){
  console.log(data.toString());
}

require('fs').readFile(filename,abc);

這個err, data是怎么傳給abc的?為啥能這樣傳參?想自定義這些參數(shù),自己寫一個回調(diào)函數(shù)又需要如何做?

我想明白這里的這些具體的原理,搞清楚它傳值的過程。

另外就是異步使用的條件很迷惑。
比如,我想在http.createServer過程中把pathname傳給router處理路由,路由處理調(diào)用函數(shù)把對應的.txt文件讀出來,再通過response寫到瀏覽器上。都有哪些是要用到異步?哪些過程可以用同步的?

回答
編輯回答
雅痞
function dosomething(val,callback){
    try{
        var data = val*val*val //隨便寫的,你可以理解為對數(shù)據(jù)做某些處理
        callback(false,data)
    }catch(error){
        callback(error,null)
    }
}

function abc(err, data){
  if(err) console.log(err) return
  console.log(data.toString());
}

dosomething(100,abc)
2017年11月5日 13:01