[英]What does 'if (err)' tests precisely in Javascript?
許多回調函數通過檢查err
參數開始,如下所示:
function myCallback(err, result) {
if ( err ) {
// Handle error
...
}
...
}
if (err)
測試驗證什么? 是否檢查對象是否為null
? 是否檢查它是否undefined
? 不應該為instanceof Error
測試嗎? 該測試何時返回true
?
在Node.js世界中,回調函數具有以下簽名
function(error, result){}
如果沒有錯誤,則通常將error
參數設置為null
,否則將相應的錯誤對象設置為null
。
因此,檢查if (err)
是否檢查我們是否確實存在錯誤情況。 如果err
對象為null
,則檢查將失敗(因為null
為假),否則將執行錯誤處理代碼。
不應該為instanceof Error測試嗎?
它不一定是Error
對象的實例。 我們甚至可以將對象文字作為錯誤對象或什至代表錯誤數組的數組傳遞。
是否檢查對象是否為空? 是否檢查它是否未定義?
如果錯誤對象為null
或undefined
,則測試將評估為錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.