Stay Hungry,Stay Foolish!

pauseable 库

pauseable.js

https://www.npmjs.com/package/pauseable

Pauseable allows you to pause event emitters, timeouts, and intervals. It can group multiple of these pauseable objects and pause entire groups.

 

Using pauseable with EventEmitter

const pauseable require('pauseable');
const EventEmitter require('events').EventEmitter;
 
var ee new EventEmitter();
 
ee.on('foo'(=> ... });
 
// ...later
pauseable.pause(ee);
 
// this event will not be immediately fired
// instead, it will be buffered
ee.emit('foo''hellow');
 
// ...much later
// the 'foo' event will be fired at this point
pauseable.resume(ee);

 

Comes with pauseable setTimeout and setInterval too

var timeout pauseable.setTimeout((=> {
  // this will take 8 seconds total to execute
  // not 5
}5000);
 
// pause timeout after 2 secs
setTimeout((=> {
  timeout.pause();
  timeout.isPaused()// true
  
  // resume after 3
  setTimeout((=> {
    timeout.resume();
  }3000);
}2000);

The function and ms arguments are interchangeable. Use whichever way you prefer!

var interval pauseable.setInterval(5000(=> {
  // this is called after 5 seconds
  // then paused for 2 seconds
  interval.pause(2000);
});
 
 

Motive

Javascript is event based by nature. When developing large scale applications that are completely event based, it becomes complicated to pause the streaming of events, because Javascript never "sleeps". It becomes even more complicated to pause timeouts and intervals, having to keep track of when they were paused so they can be resumed with the correct time again.

That's where this module comes in. Pauseable helps manage pausing and resuming your application or part of it. It works with EventEmitter, with setInterval and setTimeout.

 

 用途:

1、 页面游戏, 例如花朵和僵尸, 可以使用魔法将僵尸定住一段时间, 时间到后僵尸继续行动。

2、 XX功能关闭, 对于XX功能是由事件监听驱动的, 可以使用这个功能临时关闭掉, 需要的时候再打开。

 

posted @   lightsong  阅读(344)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
千山鸟飞绝,万径人踪灭
点击右上角即可分享
微信分享提示