始终调用函数而无需重复使用Guard子句的函数的代码的方法

发布于 2025-01-30 05:47:47 字数 548 浏览 2 评论 0原文

我有一个看起来像这样的函数:

function myFunc(){
  if (!condition1){
    //some extra code (diff. from condition2 if-statement)
    doSomething();
    return;
  }
  if (!condition2){
    //some extra code (diff. from condition1 if-statement)
    doSomething();
    return;
  }
  //some extra code (diff. from both condition if-statement)
  doSomething();
}

我想知道是否有一种简化此代码的方法,因此函数dosomething()始终执行(例如,在Java中使用try/catch/最后)。

I have a function which looks like this:

function myFunc(){
  if (!condition1){
    //some extra code (diff. from condition2 if-statement)
    doSomething();
    return;
  }
  if (!condition2){
    //some extra code (diff. from condition1 if-statement)
    doSomething();
    return;
  }
  //some extra code (diff. from both condition if-statement)
  doSomething();
}

I would like to know if there is a way to simplify this code so the function doSomething() always execute (like in Java with try/catch/finally).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月依秋水 2025-02-06 05:47:47

使用尝试/捕获[可选]/最后解决了我的问题。

try {
  (function myFunc(){
    if (!condition1){
      //some extra code (diff. from condition2 if-statement)
      return;
    }
    if (!condition2){
      //some extra code (diff. from condition1 if-statement)
      return;
    }
    //some extra code (diff. from both condition if-statement)
  })();
} finally {
  doSomething();
}

Using try/catch[optional]/finally solved my problem.

try {
  (function myFunc(){
    if (!condition1){
      //some extra code (diff. from condition2 if-statement)
      return;
    }
    if (!condition2){
      //some extra code (diff. from condition1 if-statement)
      return;
    }
    //some extra code (diff. from both condition if-statement)
  })();
} finally {
  doSomething();
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文