Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sindresorhus/p-lazy

Create a lazy promise that defers execution until it's awaited or when .then() or .catch() is called
https://github.com/sindresorhus/p-lazy

Last synced: about 1 month ago
JSON representation

Create a lazy promise that defers execution until it's awaited or when .then() or .catch() is called

Awesome Lists containing this project

README

        

# p-lazy

> Create a lazy promise that defers execution until it's awaited or when `.then()` or `.catch()` is called

Useful if you're doing some heavy operations and would like to only do it when the promise is actually used.

## Install

```sh
npm install p-lazy
```

## Usage

```js
import PLazy from 'p-lazy';

const lazyPromise = new PLazy(resolve => {
someHeavyOperation(resolve);
});

// `someHeavyOperation` is not yet called

await doSomethingFun;

// `someHeavyOperation` is called
console.log(await lazyPromise);
```

## API

### new PLazy(executor)

Same as the [`Promise` constructor](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise). `PLazy` is a subclass of `Promise`.

### PLazy.from(fn)

Create a `PLazy` promise from a promise-returning or async function.

### PLazy.resolve(value)

Create a `PLazy` promise that is resolved with the given `value`, or the promise passed as `value`.

### PLazy.reject(reason)

Create a `PLazy` promise that is rejected with the given `reason`.

## Related

- [p-cancelable](https://github.com/sindresorhus/p-cancelable) - Create a promise that can be canceled
- [p-defer](https://github.com/sindresorhus/p-defer) - Create a deferred promise
- [lazy-value](https://github.com/sindresorhus/lazy-value) - Create a lazily evaluated value
- [define-lazy-prop](https://github.com/sindresorhus/define-lazy-prop) - Define a lazily evaluated property on an object
- [More…](https://github.com/sindresorhus/promise-fun)