代码之家  ›  专栏  ›  技术社区  ›  Devmix

如何提取回调?

  •  0
  • Devmix  · 技术社区  · 4 年前

    我有这段代码,它工作得很好,但我试图将其最小化,这样我就不必重复调用format函数两次。

    这就是我的代码:

    if(date.indexOf('/') !== -1){
        return format(new Date(date), formatType);
    }
    else {
       return format(toDate(date), formatType);
    }
    

    正如你所看到的,我两次使用return格式(在if和else语句中),我试图避免DRY规则。

    这就是我所拥有的,但不起作用。

    let fn = (fn) => format(fn(date), formatType);
    return date.indexOf('/') !== -1 ? fn(new Date) : fn(toDate);
    

    有人能给我指同一个方向吗?提前非常感谢!

    1 回复  |  直到 4 年前
        1
  •  1
  •   CertainPerformance    4 年前

    将条件运算符放入调用中 format ,交替使用第一个论点:

    return format(
      date.includes('/') ? new Date(date) : toDate(date),
      formatType
    );