Skip to content
This repository has been archived by the owner on Feb 8, 2019. It is now read-only.

ember-decorators/runloop

Repository files navigation

runloop

Usage

Installation

ember install @ember-decorators/runloop

debounce

In your application where you use ES6 classes:

import Component from '@ember/component';
import { debounce } from "@ember/runloop";
import { action } from "@ember-decorators/object";

export default class TypeAhead extends Component {
  fetchResults(searchValue) {
    ...
  },

  @action
  handleTyping() {
    debounce(this, get(this, 'fetchResults'), get(this, 'searchValue'), 250);
  }
}

You replace it with this:

import Component from '@ember/component';
import { debounce } from "@ember-decorators/runloop";
import { action } from "@ember-decorators/object";

export default class TypeAhead extends Component {
  @debounce(250)
  fetchResults(searchValue) {
    ...
  },

  @action
  handleTyping() {
    get(this, 'fetchResults')(get('searchValue'));
  }
}

throttle

In your application where you use ES6 classes:

import Component from '@ember/component';
import { throttle } from "@ember/runloop";
import { action } from "@ember-decorators/object";

export default class TypeAhead extends Component {
  fetchResults(searchValue) {
    ...
  },

  @action
  moveMouse() {
    throttle(this, get(this, 'fetchResults'), get(this, 'searchValue'), 250);
  }
}

You replace it with this:

import Component from '@ember/component';
import { throttle } from "@ember-decorators/runloop";
import { action } from "@ember-decorators/object";

export default class TypeAhead extends Component {
  @throttle(250)
  fetchResults(searchValue) {
    ...
  },

  @action
  moveMouse() {
    get(this, 'fetchResults')(get('searchValue'));
  }
}

schedule

In your application where you use ES6 classes:

import Component from '@ember/component';
import { schedule } from "@ember/runloop";

export default class TypeAhead extends Component {
  fetchResults(searchValue) {
    ...
  },

  didInsertElement() {
    schedule('afterRender', this, get(this, 'fetchResults'), get(this, 'searchValue'));
  }
}

You replace it with this:

import Component from '@ember/component';
import { schedule } from "@ember-decorators/runloop";

export default class TypeAhead extends Component {
  @schedule('afterRender')
  fetchResults(searchValue) {
    ...
  },

  didInsertElement() {
    get(this, 'fetchResults')(get('searchValue'));
  }
}

This README outlines the details of collaborating on this Ember addon.

Installation

  • git clone <repository-url> this repository
  • cd runloop
  • npm install

Running

Running Tests

  • npm test (Runs ember try:each to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit https://ember-cli.com/.

About

Runloop decorators for Ember, part of the @ember-decorators suite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published