2017-09-27 9 views
0

throw`私はこのコードを使用しようとしました:`return ||の構文的に正しい代替

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

は完璧弱を見つけましたが、1行に収まるOKソリューション。それは自己実行矢印機能です。

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

私はこの解決策を" OK "とは全く考えません。それは醜く直感的ではありません。 – str

+0

@strおそらく、if..elseを使った4行の解決策も醜いです。 – K48

+2

'if(!results){throw new Error( '...'); }結果を返す; 'はあなたの提案よりはるかに読みやすくなります。 – str