返回并抛出一行没有分号

时间:2016-03-18 00:22:09

标签: javascript

有没有办法返回一个fat-arrow anon函数,运行一个条件,如果它是false则返回一个错误,如果在一行上都是true,则返回true,没有分号?

let example = (d) => { if (get(d, 'facebook_user.id')) return true; throw new Error('Missing `facebook_id` from request') }

我正试图找到一种更好的方法来编写上面没有分号,限制是我必须返回并抛出。想法?想法?

2 个答案:

答案 0 :(得分:1)

下面怎么样?

let example = (d) => { get(d, 'facebook_user.id') || (() => {throw new Error('Missing `facebook_id` from request')})() };

答案 1 :(得分:0)

可以创建一个包装条件和错误消息并抛出/返回的函数。

export function ifThrow (condition, errorMessage) {
  if (condition) throw new Error(errorMessage)
  return true
}

let check_facebook_id = (d) => ifThrow(!get(d, 'facebook_id'), 'Missing `facebook_id`')