06-node入門之node中的異步回調(diào)函數(shù)

1.Node采用Chrome V8引擎處理JavaScript腳本涵卵,V8最大的特點(diǎn)就是單線程運(yùn)行浴栽,一次只能運(yùn)行一個(gè)任務(wù)轿偎。
由于是單線程運(yùn)行典鸡,還沒執(zhí)行完的代碼會(huì)阻塞了后面的操作,如一下例子:

console.log('開始執(zhí)行了');
console.time('test');
//不斷的循環(huán)阻塞了代碼的執(zhí)行
for(var i = 0;i < 100000000;i++){
}
console.timeEnd('test');
console.log('完成執(zhí)行了');

結(jié)果:

$ node test
開始執(zhí)行了
test: 83.637ms
完成執(zhí)行了

避免不了執(zhí)行繁重的代碼坏晦,就將其放在后面椿每,可以采用setTimeout(()=>{},0),將耗費(fèi)時(shí)間的操作放在里面,通過借助這個(gè)函數(shù)作為一個(gè)回調(diào)將耗費(fèi)事件的操作放在事件隊(duì)列的最后一個(gè)间护。如下

console.log('開始執(zhí)行了');
console.time('test');
setTimeout(()=>{
    for(var i = 0;i < 100000000000;i++){}
    console.log('循環(huán)完了');
},0);
console.timeEnd('test');
console.log('完成執(zhí)行了');

結(jié)果:

$ node test
開始執(zhí)行了
test: 1.052ms
完成執(zhí)行了
循環(huán)完了

借助了回調(diào)函數(shù),執(zhí)行的順序就變了挖诸。
有個(gè)問題就是汁尺,上面那段for循環(huán)代碼對(duì)下面的操作沒有影響,下面并沒有用到上面的數(shù)據(jù)多律,如果下面的代碼依賴上面的,就不能這樣 狼荞。在node中辽装,通常采用回調(diào)的方式異步執(zhí)行。


2.Node大量采用異步操作相味,即任務(wù)不是馬上執(zhí)行拾积,而是插在任務(wù)隊(duì)列的尾部,等到前面的任務(wù)運(yùn)行完后再執(zhí)行丰涉。
回調(diào)函數(shù)的設(shè)計(jì):

  • 對(duì)于一個(gè)函數(shù)如果需要定義回調(diào)函數(shù):
    --回調(diào)函數(shù)一定作為參數(shù)的最后一個(gè)參數(shù)出現(xiàn):
    function fun1(name,age,callback){}
    function fun2(value,callback1,callback2){}
    --回調(diào)函數(shù)的第一個(gè)參數(shù)默認(rèn)接收錯(cuò)誤信息拓巧,第二個(gè)參數(shù)才是真正的回調(diào)數(shù)據(jù)(便于外界獲取調(diào)用的錯(cuò)誤情況):
fun1('jack',19,function(error,data){
  if(error) throw error;
  console.log(data);
})

強(qiáng)調(diào)錯(cuò)誤優(yōu)先:

  • 因?yàn)橹蟮牟僮鞔蠖嗍钱惒降姆绞剑瑹o法通過try catch捕獲異常一死,所以錯(cuò)誤優(yōu)先的回調(diào)函數(shù)(第一個(gè)參數(shù)為上一步的錯(cuò)誤信息)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肛度,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子承耿,更是在濱河造成了極大的恐慌,老刑警劉巖伪煤,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件加袋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡带族,警方通過查閱死者的電腦和手機(jī)锁荔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阳堕,“玉大人跋理,你說我怎么就攤上這事√褡埽” “怎么了前普?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵壹堰,是天一觀的道長(zhǎng)拭卿。 經(jīng)常有香客問我,道長(zhǎng)贱纠,這世上最難降的妖魔是什么峻厚? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮谆焊,結(jié)果婚禮上惠桃,老公的妹妹穿的比我還像新娘辖试。我一直安慰自己辜王,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布罐孝。 她就那樣靜靜地躺著呐馆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪莲兢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天怒见,我揣著相機(jī)與錄音俗慈,去河邊找鬼。 笑死遣耍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炮车。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼瘦穆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼纪隙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扛或,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤绵咱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后悲伶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艾恼,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年麸锉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钠绍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柳爽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碱屁,到底是詐尸還是另有隱情磷脯,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布娩脾,位于F島的核電站赵誓,受9級(jí)特大地震影響晦雨,放射性物質(zhì)發(fā)生泄漏架曹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一闹瞧、第九天 我趴在偏房一處隱蔽的房頂上張望绑雄。 院中可真熱鬧,春花似錦奥邮、人聲如沸万牺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蘸朋,卻和暖如春核无,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藕坯。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炼彪,地道東北人吐根。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像辐马,于是被迫代替她去往敵國和親拷橘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宮若石閱讀 1,057評(píng)論 0 1
  • Node.js是目前非橙叽火熱的技術(shù)萄唇,但是它的誕生經(jīng)歷卻很奇特。 眾所周知赌厅,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,607評(píng)論 2 41
  • 沉默著/是花瓣離開時(shí)的選擇 遙遠(yuǎn)的/不再是轉(zhuǎn)身的那一刻 起風(fēng)了/也就單單滿足過風(fēng)車 而我呢/終于聽懂了心如刀割 曾...
    YuXiAn_ChAn閱讀 239評(píng)論 0 1
  • 你在橋上靜候伺機(jī)潛逃的青魚和貝 我在樹下默背第二十一條漁獵行規(guī) 冷兵器是一種略顯粗糙卻熱情的交友手段 再加一句“試...
    工點(diǎn)鐘閱讀 168評(píng)論 0 0
  • 事出有因 最近突然想到一些人一些事穷绵,對(duì)人的一些行為感到好奇,就想研究研究仲墨,想著這應(yīng)該屬于行為心理學(xué)的范疇,于是就開...
    寂夜未央閱讀 304評(píng)論 0 0