【问题标题】:javascript: clean way to have a return statement span multiple linesjavascript:让return语句跨越多行的干净方法
【发布时间】:2019-09-27 15:53:51
【问题描述】:

我想在一行中有一个 javascript 返回关键字,而它实际返回的内容在下一行。 在 python 中,这将类似于

return \
    someValue

但是由于语句终止分号的可选性以及 javascript 中没有行继续符,我想出的唯一方法是 hackish

return false ||
    someValue;

动机: 我的实际代码是这样的。在开发过程中,我有时会注释掉第二行以在 GlobalScope.doSomething() 和 myThing.doSomething() 之间切换。诚然,这是一个小问题。

return false ||
    myThing.
    doSomething()
    .then(...)
    .then(...)
    .

【问题讨论】:

  • 我更喜欢括号:return ( <newline> someValue <newline> );
  • 确实如此。这对于一个简单的案例来说更好!但在我实际的实际代码中,doSomething() 是一个承诺链,它持续 10 或 15 行,我不希望在它们的末尾有一个有点虚假的近括号。
  • 我会将返回语句的或下方移动。操作数具有相同的列。
  • 如果是数字可以使用return + <newline> someValue;
  • 一个常见的习惯用法是return myThing <newline>.doSomething() <newline>.then() <newline>.then() <newline>.then(),即一行中的return myThing充当流利链其余部分的锚。另外,“我不希望有一个有点虚假的近括号”是的,我同意,JS 充满了像恕我直言的尾随语法。你有点习惯了。

标签: javascript return multiline line-continuation


【解决方案1】:

通常的方法是将要链接的对象与return放在同一行:

return myThing
    .doSomething()
    .then(...)
    .then(...);

return myThing
.doSomething()
.then(...)
.then(...);

但如果你坚持单独的行和额外的缩进,你也可以使用括号:

return (
    myThing
    .doSomething()
    .then(...)
    .then(...)
);

【讨论】:

  • 感谢伯吉。我正在寻找可以评论/取消评论整行的东西,以按照我想要的方式更改功能。你的第三个建议实现了这一点,但它引入了一个尾随关闭括号。现在我坚持false || 的事情。
  • @orionelenzil 你可以用 cmets 交换两个 return myThingreturn otherThing 行吗?
  • :) 是的,我可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 2015-03-17
  • 2013-04-29
  • 2015-09-21
  • 2020-09-02
  • 1970-01-01
相关资源
最近更新 更多