2017-10-13 32 views
2

假設你有一個腳本,看起來像非零代碼退出異步腳本規範的方法

async function main() { 
    await somethingThatCanFail() 
} 

main() 

目前與非零代碼退出我做

main() 
    .then(() => console.log('success message and stuff') 
    .catch(function(err) { 
    console.error(err) 
    process.exit(1) 
    }) 

因爲承諾內的throw new Error(err)是徒勞的。然而,這感覺有點不好意思,我想知道是否有更標準的方法來做到這一點。

+1

'process.exit()'就是你應該如何結束你的過程,如果你想結束它。根本沒有什麼「哈克」。你犯了一個錯誤,決定你想中止這個過程並結束這個過程。我會認爲一個未被捕獲的異常更加黑客。 – jfriend00

+1

我認爲這正是你應該做的,直到有一個標誌使未處理的拒絕中止這個過程。不過,您可以[模擬](https://stackoverflow.com/a/45771671/1048572)。 – Bergi

+0

好的謝謝@ jfriend00和Bergi – m0meni

回答

2

process.exit()如果你想結束它,你應該如何結束你的過程。根本沒有什麼「哈克」。

您正確地發現了一個錯誤,決定您想要因該錯誤而終止該過程並以文檔化的方式結束該過程。我會認爲一個未被捕獲的異常更加黑客。

在退出之前,您可以輸出任何您想要用於診斷目的的控制檯,如果這是您認爲您可能從未處理的異常中缺少的內容。