亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Node.js 異步異常如何處理?

Node.js 異步異常如何處理?

素胚勾勒不出你 2018-06-27 18:18:23
在看《深入淺出Node.js》的時候,書上第四章,有句話:“Node在處理異常上形成了一種約定,將異常作為回調函數的第一個實參傳回,如果為空值,則表明異步調用沒有異常拋出?!边@句話下也有個簡短的例子,本人剛學Node,感覺這句話好繞口。有沒有更詳細的例子?
查看完整描述

5 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

這句話指的是如下這種情況:

fs.readFile('/etc/passwd', function (err, data) {  
    if (err) {    
        // 判斷是否發生錯誤,并做相應的處理
  } 
  else {    
      console.log(data); // 處理結果
  }
});

基本上node的異步api都有這樣的約定,即最后一個參數為一個回調函數,這個回調函數的第一個參數表示異步操作的過程中是否發生異常,第二個參數表示異步操作的結果。


查看完整回答
反對 回復 2018-07-08
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

補充
============
如果需要拋出異常:

function doSomething(a, callback) {  
    if(! a) {    
        return callback(new Error('params error.')); //回調傳入 Error
    }  
  var b = a++;  return callback(null, b);// 無異常}


查看完整回答
反對 回復 2018-07-08
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

一大堆的function (err, xx, xx) {}來襲

查看完整回答
反對 回復 2018-07-08
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

這是有err的情況,就是回調函數的第一個參數

client.on('line',function(err,data){    
    if(err){        
            console.log(err);
    }else
        console.log(data)
});

這是回調沒有拋出異常的情況

client.on('data',funciton(data){    
    console.log(data);
})

這是沒有回調參數的情況

client.on('end',function(){ console.log('end')})


查看完整回答
反對 回復 2018-07-08
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

callback第一個參數為error,不是規定的規定

查看完整回答
反對 回復 2018-07-08
  • 5 回答
  • 0 關注
  • 588 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號