# defer-promise

> Isomorphic function returning a deferred promise. Uses native `Promise.defer` if available, else polyfills.

Latest version **3.0.1** (published 2026-03-07) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install defer-promise
pnpm add defer-promise
yarn add defer-promise
bun add defer-promise
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 3.0.1 |
| Published | 2026-03-07 |
| First published | 2015-10-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/defer-promise) |
| Module format | ESM |
| Node | >=12.17 |
| Dependencies | 0 |
| Unpacked size | 4.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Lloyd Brookes |
| Maintainers | 75lb |
| Keywords | defer, promise, es6, native, deferred |

## Links

- npm: https://www.npmjs.com/package/defer-promise
- Repository: https://github.com/75lb/defer-promise
- Homepage: https://github.com/75lb/defer-promise#readme
- Issues: https://github.com/75lb/defer-promise/issues
- npm.io page: https://npm.io/package/defer-promise

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 3.0.1 (latest) — 2026-03-07
- 3.0.0 — 2022-03-29
- 2.0.1 — 2018-12-14
- 2.0.0 — 2018-12-14
- 1.0.2 — 2018-11-16
- 1.0.1 — 2017-02-02
- 1.0.0 — 2016-06-05
- 0.1.2 — 2015-12-20
- 0.1.1 — 2015-10-25
- 0.1.0 — 2015-10-25

## README

[![view on npm](https://badgen.net/npm/v/defer-promise)](https://www.npmjs.org/package/defer-promise)
[![npm module downloads](https://badgen.net/npm/dt/defer-promise)](https://www.npmjs.org/package/defer-promise)
[![Gihub repo dependents](https://badgen.net/github/dependents-repo/75lb/defer-promise)](https://github.com/75lb/defer-promise/network/dependents?dependent_type=REPOSITORY)
[![Gihub package dependents](https://badgen.net/github/dependents-pkg/75lb/defer-promise)](https://github.com/75lb/defer-promise/network/dependents?dependent_type=PACKAGE)
[![Node.js CI](https://github.com/75lb/defer-promise/actions/workflows/node.js.yml/badge.svg)](https://github.com/75lb/defer-promise/actions/workflows/node.js.yml)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)

***Deprecated. Deferred promises have been standardised by the native [Promise.withResolvers()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers) method. This library will continue to function correctly but will no longer be maintained.***

# defer-promise

Isomorphic function returning a deferred promise with `resolve` and `reject` methods. If the global `Promise.defer()` method exists it will use that, else polyfill.

```js
import defer from 'defer-promise'
const deferred = defer()

/* Async function using a callback instead of returning a promise */
doSomething((result, err) => {
  if (err) {
    deferred.reject(err)
  } else {
    deferred.resolve(result)
  }
})

const result = await deferred.promise;
```

## Load anywhere

This library can be loaded anywhere, natively without transpilation.

Common JS:

```js
const defer = require('defer-promise')
```

Node.js with ECMAScript Module support enabled:

```js
import defer from 'defer-promise'
```

Modern browser ECMAScript Module:

```js
import defer from './node_modules/defer-promise/index.js'
```

* * *

&copy; 2015-26 Lloyd Brookes \<opensource@75lb.com\>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).

---
_Source: https://npm.io/package/defer-promise · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
