javascript 使用与可观察模式相同的代码概念的不可观察解决方案。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 使用与可观察模式相同的代码概念的不可观察解决方案。相关的知识,希望对你有一定的参考价值。
import {
BUTTON_DOWN,
BUTTON_UP,
doButtonPressAction,
} from './actions'
const timeLimit = 300
let timeoutId = 0
const numButtonPresses = {
numDown: 0,
numUp: 0,
}
const resetButtonPresses = () => {
numButtonPresses.numDown = 0
numButtonPresses.numUp = 0
}
const handleButtonPress = buttonState => {
if (buttonState === BUTTON_DOWN) {
numButtonPresses.numDown += 1
}
else if (buttonState === BUTTON_UP) {
numButtonPresses.numUp += 1
}
clearTimeout(timeoutId)
new Promise(resolve => (
timeoutId = setTimeout(resolve, timeLimit)
))
.then(resetButtonPresses)
.then(
doButtonPressAction(
bluetoothAddress,
{ ...numButtonPresses }
)
)
}
const listenForButtonPress = bluetoothAddress => {
new FlicConnectionChannel(bluetoothAddress)
.on('buttonUpOrDown', handleButtonPress)
}
以上是关于javascript 使用与可观察模式相同的代码概念的不可观察解决方案。的主要内容,如果未能解决你的问题,请参考以下文章
我可以将 async/await Promises 与可观察的 RXJS 混合使用吗?
观察者模式
角度 2 ngIf 与可观察?
将数组与可观察的MobX可观察数组进行比较
用java语言实现一个观察者模式
JavaScript数组概念及相关练习