machty / ember-concurrency

ember-concurrency is an Ember Addon that enables you to write concise, worry-free, cancelable, restartable, asynchronous tasks.
http://ember-concurrency.com
MIT License
690 stars 157 forks source link

v2: native class encapsulated tasks #375

Closed maxfierke closed 3 years ago

maxfierke commented 3 years ago

This enables using native classes w/ encapsulated tasks, enabling some cool re-use cases.

e.g.

// app/tasks/mapping
export default class FindMeTask {
  @service geolocation;

  *perform() {
     // ... some geolocation magic ...
  }
}
// app/components/local-map-or-whatever.js
import FindMeTask from 'my-app/tasks/find-me';
import { task } from 'ember-concurrency';
// ... other imports

export default class LocalMapOrWhatever extends GlimmerComponent {
  @(task(FindMeTask).restartable()) findMe;

  // ... other stuff
}
maxfierke commented 3 years ago

Closing for now... need to re-think a bit, but might come back to it.