0
我正在使用nock.back
來嘲笑一些API調用。當發生意外的呼叫時,UnhandledPromiseRejectionWarning
會被打印到控制檯,但我的測試通過,並且在控制檯其他輸出中很容易忽略這些警告。我想拋出一個異常而不是無聲的錯誤。我該怎麼做呢?如何使節點爲UnhandledPromiseRejectionWarning拋出錯誤
我正在使用nock.back
來嘲笑一些API調用。當發生意外的呼叫時,UnhandledPromiseRejectionWarning
會被打印到控制檯,但我的測試通過,並且在控制檯其他輸出中很容易忽略這些警告。我想拋出一個異常而不是無聲的錯誤。我該怎麼做呢?如何使節點爲UnhandledPromiseRejectionWarning拋出錯誤
我使用的承諾的方式是:
function myFunction(){
return new Promise((resolve, reject) -> {
try {
// Logic
resolve(logic)
} catch(e) {
reject('Provide your error message here -> ' + e)
}
})
}
還是!
function myFunction().then(// Calls the function defined previously
logic => { // Instead of logic you can write any other suitable variable name for success
console.log('Success case')
},
error => {
console.log('myFunction() returned an error: ' + error)
}
)
UPD
你吃過這裏看看嗎? https://nodejs.org/api/process.html#process_event_unhandledrejection 它描述了一個unhandledRejection事件,當你沒有捕獲Promise的拒絕並提供代碼來捕獲WARNING並將其很好地輸出到控制檯時,會發出unhandledRejection事件。
(複製粘貼)
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at:', p, 'reason:', reason);
// application specific logging, throwing an error, or other logic here
});
的Node.js運行在一個單一的過程。
我知道這是最佳實踐,但我希望我的測試在未遵循最佳實踐時失敗。 –
你看過這裏嗎? https://nodejs.org/api/process.html#process_event_unhandledrejection它描述了一個unhandledRejection事件,當你沒有收到Promise的拒絕並給你代碼基本上捕獲警告時發生。 – user4447655
第一個代碼片段沒用,你不需要在Promise構造函數回調中使用'try' /'catch' – Bergi