javascript 外观的完全重构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 外观的完全重构相关的知识,希望对你有一定的参考价值。
const { addYears } = require('date-fns/fp')
const { finalize, switchMap, takeUntil, tap } = require('rxjs/operators')
const { interval, timer } = require('rxjs')
require('./directory')
const config = require('$config')
const {
flashRandomLight,
getTimeUntilHalloweenEnds,
getTimeUntilHalloweenStarts,
} = require('./')
const addOneYear = (
addYears(
1,
)
)
const getHalloweenFlasherObservable = (
date = new Date(),
) => (
timer(
getTimeUntilHalloweenStarts(
date,
)
)
.pipe(
tap(() => (
console
.info('LIFX Halloween Activated')
)),
switchMap(() => (
interval(10000)
.pipe(
takeUntil(
timer(
getTimeUntilHalloweenEnds()
)
),
finalize(() => (
console
.info('LIFX Halloween Deactivated')
)),
flashRandomLight(
config
.getLifxSelector()
),
tap(console.info),
)
)),
)
.subscribe(
console.log,
console.error,
() => {
getHalloweenFlasherObservable(
addOneYear(
date,
)
)
}
)
)
getHalloweenFlasherObservable()
以上是关于javascript 外观的完全重构的主要内容,如果未能解决你的问题,请参考以下文章
外观模式
外观模式(Facade)
外观代理和图层
Eclipse 中的重构功能
外观模式
javascript 重构测试的重构