pm-forever
TypeScript icon, indicating that this package has built-in type declarations

2.1.2 • Public • Published

p-forever Build Status

Run promise-returning & async functions until you end it

Think of it like an async version of while (true) {}.

Install

$ npm install p-forever

Usage

Here we create some numbered fixtures. The createFixture() function returns a Promise.

const pForever = require('p-forever');
 
pForever(async i => {
    i++;
 
    if (> 100) {
        return pForever.end;
    }
 
    await createFixture(i);
 
    return i;
}, 0);

or

const pForever = require('p-forever');
 
let i = 0;
 
pForever(async () => {
    i++;
 
    if (> 100) {
        return pForever.end;
    }
 
    await createFixture(i);
});

API

pForever(fn, [initialValue])

Returns a Promise that is fulfilled when fn returns pForever.end, or rejects if any of the promises returned from fn rejects.

fn(previousValue)

Type: Function

Receives the previously returned value. If a Promise is returned, it's awaited before calling fn again.

initialValue

Initial value to pass to fn.

pForever.end

Symbol used to end the loop.

Related

  • p-times - Run promise-returning & async functions a specific number of times concurrently
  • p-whilst - Calls a function repeatedly while a condition returns true and then resolves the promise
  • More…

License

MIT © Sindre Sorhus

Package Sidebar

Install

npm i pm-forever

Weekly Downloads

1

Version

2.1.2

License

MIT

Unpacked Size

4.96 kB

Total Files

6

Last publish

Collaborators

  • ludx