我试图在不使用if语句的情况下对HTTP服务器进行编码(请不要告诉我仅使用if语句)。我正在尝试做的是使三元运算符强制运行它的函数返回并停止运行。这是我要尝试的示例:
let _ = () => {};
let http = require('http');
http.createServer((req,res) => {
(true) ? terminateParentFunction() : _();
res.end('test'); // this should not run
}).listen(80);
答案 0 :(得分:0)
三元运算符涉及表达式,而return
是语句,不能成为三元运算的一部分。
short-circuit operator或三进制可以用作条件评估表达式的一部分:
false &&
res.end('test'); // this should not run
或
true ? 'noop' :
res.end('test'); // this should not run
可以使用异常从函数中尽早返回,但是它可能会产生负面影响……因为这是一个异常:
true ? (() => { throw 'return' })() : null;
res.end('test'); // this should not run
除非代码参与了代码争夺或其他支持潜在的不可读代码的学科,否则,更好的方法是使用适用于此目的且可以被任何开发人员轻松阅读的东西:
return;