2017-09-27 28 views
0

我曾嘗試使用此代碼:針對`return ||的合成正確替代方案throw`

let results = await getResults(); 
return results || throw new Error('Error fetching results.'); 

然而,這是無效的語法,因爲throw不是一個表達式。

這段代碼在ES7中是一個語法正確但簡潔的替代方案?

我已經試過,但也失敗了:

results ? return results : throw new Error('Error fetching results.'); 
+4

沒有任何技巧,「if .. else」。或者在這種特殊情況下,只要'if(!results)throw; return';' – Teemu

+1

'getResults()'函數可能拋出錯誤 – Maxim

回答

-1

找到了符合成一行一個完美略少,但確定的解決方案。這是一個自我執行的箭頭功能。

return results || (() => { throw new Error('Error fetching results.'); })(); 
+1

我根本不認爲這個解決方案「OK」。這是醜陋和不直觀的。 – str

+0

@str也許,但if..else的4行解決方案也很難看 – K48

+2

'if(!results){throw new Error('...'); }返回結果;'比你的建議更可讀。 – str