loopyloop
所属分类:弱点检测代码
开发工具:TypeScript
文件大小:0KB
下载次数:0
上传日期:2024-03-28 19:48:09
上 传 者:
sh-1993
说明: 一个简单的类,用于实例化异步函数的无限循环,而不会发生内存泄漏。
(A simple class to instantiate infinite loops of async functions without memory leaks.)
文件列表:
src/
.npmignore
LICENSE.md
package-lock.json
package.json
tsconfig.cjs.json
tsconfig.esm.json
# LoopyLoop
A simple class to instantiate infinite loops of async functions.
## Usage
```js
const { LoopyLoop } = require('loopyloop');
const loop = new LoopyLoop(async () => {
// something async here
})
.on('started', () => {})
.on('stopped', () => {})
.on('error', (err) => {})
.start();
```
## API
### Constructor
```js
const loop = new LoopyLoop(task, opts);
```
| Argument | Description |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `task` | An `async` or otherwise `Promise`-returning `function` to be executed continuously. |
| `[opts]` | An optional `object` of loop options. |
| `[opts.maxChained]` | The optional maximum `number` of chained executions within the same tick of the JavaScript event loop. Defaults to `10`. |
### Events
The `LoopyLoop` class extends `EventEmitter` and its instances emit the following events:
| Event | Description |
| ---------- |-------------------------------------------------------------------------------------------------------------------------------|
| `started` | Emitted **after** the loop has started running but before the task runs for the first time. |
| `stopped` | Emitted **after** the loop has stopped running. |
| `error` | Emitted when the `Promise` returned by `task` rejects. The rejection's error is provided as the first argument to this event. |
In addition to emitting the `error` event, a `LoopyLoop` instance will stop running when its `task` rejects.
### Methods
| Method | Description |
|------------------|-------------------|
| `loop.start()` | Starts the loop. |
| `loop.stop()` | Stops the loop. |
## Runtimes
LoopyLoop should be compatible with all modern JS runtimes. Loaders, bundlers,
build systems and [import maps][r2] may be used to resolve the `events` module,
which is native to the Node.js runtime, to any other package or module offering
an alternative implementation of `EventEmitter`, as long as basic API
compatibility is maintained. Good examples of alternative implementations are
[`eventmitter3`][r1] and [`events`][r3].
[r1]: https://www.npmjs.com/package/eventemitter3
[r2]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap
[r3]: https://www.npmjs.com/package/events
## License
[MIT](https://github.com/jacoscaz/loopyloop/blob/master/./LICENSE.md)
近期下载者:
相关文件:
收藏者: