ember-await icon indicating copy to clipboard operation
ember-await copied to clipboard

Await component for Ember Applications. Resolve your data on demand, just when needed.

ember-await

Ember component for declarative promise resolution. Makes it easy to handle every state of the asynchronous process, without assumptions about the shape of your data or the type of request. Use it with fetch, Axios or other data fetching libraries, even GraphQL.

  • Expose states components for easier promise states handling
  • Provides convenient metadata (isPending, isFulfilled etc.)
  • Provides cancel and reload actions
  • Supports non-async data
  • Highly inspired by react-async
  • Takes advantage of ember-concurrency to manage promise state (aborting, cancellation, etc.)

Documentation

For full documentation visit: https://exelord.gitbook.io/ember-await

Compatibility

  • Ember.js v3.16 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Installation

ember install ember-await

Basic usage

  <Await @promise={{this.fetchPosts}} as |await|>
    <await.Pending>
      Loading posts...
    </await.Pending>

    <await.Fulfilled as |posts|>
      {{#each posts as |post|}}
        {{post.title}}
      {{/each}}
    </await.Fulfilled>

    <await.Rejected>
      Something went wrong :(
    </await.Rejected>
  </Await>

For full documentation visit: https://exelord.gitbook.io/ember-await

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.