Previous: Lifecycle Events
Starting with ember-concurrency v2.2.0, public Task Modifier APIs have been added to allow for custom task modifiers to be registered from third-party addons and application code to provide behavior for specific situations not suited to inclusion within ember-concurrency's core itself.
Task modifiers have been a concept built-in to `ember-concurrency` since the beginning. However, until `0.7.19` they were only specifyable within `ember-concurrency` internals, and not extendable by users. `0.7.19` added the ability to specify new modifiers as prototype extensions on `TaskProperty`. Unfortunately, `TaskProperty` is inherently tied to Ember internals and is not used when using decorators, and using prototype extensions does not make clear what modifiers exist, so the `getModifier`, `hasModifier`, and `registerModifier` APIs were introduced to provide a way to manage modifiers and make them discoverable.
Let's say we want to build a benchmarking modifier to help us get a sense for how long our tasks are running.
Now that we have a new modifier defined, we can apply it to any tasks that we wish and have it apply the behavior we built. Let's see it in action!
The behavior and implementation of task modifier APIs are defined further in
the
Task Modifiers RFC. Additionally, the API for
TaskFactory
is documented
here.
Previous: Lifecycle Events