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)

近期下载者

相关文件


收藏者