# ember-concurrency

> Improved concurrency/async primitives for Ember.js

Latest version **5.2.0** (published 2026-02-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install ember-concurrency
pnpm add ember-concurrency
yarn add ember-concurrency
bun add ember-concurrency
```

## Health

**Score 50/100 (C)** — status: stable.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 5.2.0 |
| Published | 2026-02-18 |
| First published | 2016-01-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | 16.* \|\| >= 18 |
| Dependencies | 5 |
| Unpacked size | 358 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 688 |
| Author | Alex Matchneer |
| Maintainers | m4xm4n, machty |
| Keywords | ember-addon, concurrency, task, tasks, cancellation, cancelation |

## Links

- npm: https://www.npmjs.com/package/ember-concurrency
- Repository: https://github.com/machty/ember-concurrency
- Homepage: https://github.com/machty/ember-concurrency#readme
- Issues: https://github.com/machty/ember-concurrency/issues
- npm.io page: https://npm.io/package/ember-concurrency

## Dependencies (5)

- [@babel/types](https://npm.io/package/@babel/types.md) ^7.12.13
- [decorator-transforms](https://npm.io/package/decorator-transforms.md) ^1.0.1
- [@embroider/addon-shim](https://npm.io/package/@embroider/addon-shim.md) ^1.8.7
- [@babel/helper-plugin-utils](https://npm.io/package/@babel/helper-plugin-utils.md) ^7.12.13
- [@babel/helper-module-imports](https://npm.io/package/@babel/helper-module-imports.md) ^7.22.15

## Recent versions

- 5.2.0 (latest) — 2026-02-18
- 5.1.0-0 (to-fn3) — 2025-08-13
- 5.0.0-alpha.1 (alpha) — 2025-08-13
- 4.0.0-beta.4 (beta) — 2024-02-06
- 2.0.0-rc.2 (rc) — 2021-01-20
- 0.0.0-next5 (next5) — 2017-03-26
- 0.0.0-next4 (next4) — 2017-03-26
- 0.0.0-next3 (next3) — 2017-03-26
- 0.0.0-next2 (next2) — 2016-12-26
- 0.0.0-next1 (next1) — 2016-12-26
- 0.0.0-next0 (next) — 2016-12-23
- 0.0.0-sync2 (pr-100-2) — 2016-12-07
- 0.0.0-sync (pr-100) — 2016-12-04
- 0.0.0-tof10 (tof2) — 2016-11-18
- 0.0.0-tof9 (to-fn2) — 2016-11-17
- … 136 more at https://npm.io/package/ember-concurrency/versions

## README

# ember-concurrency

[![Build Status][build-status-img]][build-status-link]
[![NPM][npm-badge-img]][npm-badge-link]
[![Ember Observer Score][ember-observer-badge]][ember-observer-url]
![Ember Version][ember-version]

Improved concurrency primitives for Ember.js. Documentation can be
found [here](http://ember-concurrency.com).

## Installation

`ember-concurrency` is an ember-cli addon. You can install it via:

    ember install ember-concurrency

### Configure Babel Transform

Ember Concurrency requires the use of a Babel Transform to convert tasks in the "async-arrow" notation (e.g. `fooTask = task(async () => { /*...*/ }`) into generator functions. Since Ember Concurrency 4.0.0+ is an Embroider V2 Addon, this Babel transform needs to be configured on the consuming application or addon.

```js
// in app ember-cli-build.js

const app = new EmberApp(defaults, {
  // ...
  babel: {
    plugins: [
      // ... any other plugins
      require.resolve("ember-concurrency/async-arrow-task-transform"),

      // NOTE: put any code coverage plugins last, after the transform.
    ],
  }
});

// in V1 addon index.js

// ...
options: {
  babel: {
    plugins: [
      require.resolve('ember-concurrency/async-arrow-task-transform'),
    ],
  },
},

// in V2 addon babel.config.json
{
  "plugins": [
    [
      // ... any other plugins
    "ember-concurrency/async-arrow-task-transform"
  ]
}
```

See the [test application](https://github.com/machty/ember-concurrency/blob/master/packages/test-app/ember-cli-build.js) for an example.

## Documentation

The [ember-concurrency documentation site](http://ember-concurrency.com) is an ember-cli app
with interactive examples powered by ember-concurrency. It runs from
ember-concurrency's [test app](https://github.com/machty/ember-concurrency/tree/master/packages/test-app/app).

## Problems?

- [Open an Issue](https://github.com/machty/ember-concurrency/issues).
  - Try to replicate the issue within an [ember-twiddle][twiddle-starter]
- Ask a question in the `#e-concurrency` channel at the [Ember Community Discord server](https://discord.gg/zT3asNS)

## Contributing

See the [Contributing](CONTRIBUTING.md) guide for details.

[build-status-img]: https://github.com/machty/ember-concurrency/workflows/CI/badge.svg
[build-status-link]: https://github.com/machty/ember-concurrency
[npm-badge-img]: https://badge.fury.io/js/ember-concurrency.svg
[npm-badge-link]: http://badge.fury.io/js/ember-concurrency
[ember-observer-badge]: http://emberobserver.com/badges/ember-concurrency.svg
[ember-observer-url]: http://emberobserver.com/addons/ember-concurrency
[ember-version]: https://img.shields.io/badge/Ember-4.0+-brightgreen.svg
[twiddle-starter]: https://ember-twiddle.com/b2b0c016f4df24261381487b60c707f3?numColumns=2&openFiles=templates.application.hbs%2Ctemplates.application.hbs

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