使用 return 作为三元表达式中的多个语句之一
Using return as one of multiple statements in ternary expression
我有这个代码:
err ? (reject(err), return)
: resolve(db)
其中 return 个:
SyntaxError: Unexpected token return
然而这有效:
err ? (reject(err), console.log('test'))
: resolve(db)
为什么在这种情况下不能使用return?在对多个语句使用三元运算符时,还有其他方法可以停止函数执行吗?
这是一个三元表达式,表达式作为一个整体必须求值为一个值,因此只包含表达式。
你也不能说a = 1 + return;
。
Is there other alternative to stop function execution while using
ternary operator for multiple statements?
if
语句...
if (err) { reject(err); return }
resolve(db);
err ? (reject(err), return)
: resolve(db)
Is there other alternative to stop function execution while using
ternary operator for multiple statements?
三元运算符在包含隐式 return
语句的意义上与 if else
不同。所以为了在条件满足后尽快return,你可以按照下面的方式做。
return err ? reject(err)
: resolve(db);
我有这个代码:
err ? (reject(err), return)
: resolve(db)
其中 return 个:
SyntaxError: Unexpected token return
然而这有效:
err ? (reject(err), console.log('test'))
: resolve(db)
为什么在这种情况下不能使用return?在对多个语句使用三元运算符时,还有其他方法可以停止函数执行吗?
这是一个三元表达式,表达式作为一个整体必须求值为一个值,因此只包含表达式。
你也不能说a = 1 + return;
。
Is there other alternative to stop function execution while using ternary operator for multiple statements?
if
语句...
if (err) { reject(err); return }
resolve(db);
err ? (reject(err), return)
: resolve(db)
Is there other alternative to stop function execution while using ternary operator for multiple statements?
三元运算符在包含隐式 return
语句的意义上与 if else
不同。所以为了在条件满足后尽快return,你可以按照下面的方式做。
return err ? reject(err)
: resolve(db);