1.1.8 • Published 5 years ago

one-timer v1.1.8

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

思考如下问题: 当我们需要延迟执行代码,这种情况一多,我们就需要同时创建很多个定时器。当我们的页面同时持有很多定时器的时候,这会耗费很多不必要的计算机资源。

setTimeout(() => {}, 100)
setTimeout(() => {}, 200)
setTimeout(() => {}, 300)
setTimeout(() => {}, 400)
setTimeout(() => {}, 500)
...

试想,我们是否可以只使用一个定时器来完成上述的逻辑,也就是说我们只需要依次设置一个100ms的定时器,在前一个定时器完成后,才设置下一个定时器。

setTimeout(() => {
  setTimeout(() => {
    setTimeout(() => {
      ...
    }, 300- 200)
  },200 - 100)
},100)

OneTimer最终完成的事情就是这个。

npm i --save one-timer

import OneTimer from 'one-timer/dist/OneTimer.es.js'

let oneTimer = new OneTimer()
oneTimer.push(100, () => {})
oneTimer.push(200, () => {})
oneTimer.push(300, () => {})
oneTimer.push(400, () => {})
oneTimer.push(500, () => {})
...

如上,不管你需要执行多少个定时逻辑,持有的定时器永远只有一个。

新增api

  • oneTimer.setTimeout
  • oneTimer.clearTimeout
  • Return Type: Node
let oneTimer = new OneTimer()
let id = oneTimer.setTimeout( () => {}, delay)
oneTimer.clearTimeout(id)
  • oneTimer.pause
  • oneTimer.restart
let oneTimer = new OneTimer()
oneTimer.pause()
onetTimer.restart()
1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.0.1

5 years ago