每周npm模块源码解读:ms
2018-11-07 字数统计:948 字 阅读时长 ≈ 1 分钟

周2018.11.5 ~ 2018.11.11

前言

模块名:ms

github: https://github.com/zeit/ms

描述:方便的转化将各种时间转化为毫秒,也可以将毫秒转化为其他时间

适合人群:至少看过一遍源码

正文

有两个参数,第一个是需要转化的值val,第二个是配置选项options。

首先判断val的类型,如果是字符串并且长度大于0,就执行函数 parse。如果是数字并且不是NaN,接着判断options.long是否为true,如果为true,就执行函数 fmtLong ,否则执行函数 fmtShot

函数 parse :用正则来匹配val出结果,然后通过 switch case ,返回最终毫秒数。

函数 fmtShort :首先通过 Math.abs 返回val的绝对值,然后判断是大于天的毫秒数,还是大于小时的毫秒数等的判断,最终返回正确的值。

函数 fmtLong :和函数 fmtShort 一样,区别于改变了后缀词以及判断是否为复数。

结语

学习到了,简单,但感觉看这个源码很舒服。