Что пользователь задает / выполняет в ES6 Generator Code? - PullRequest
1 голос
/ 14 октября 2019

У меня есть приложение Ember, и где-то в моем проекте я вижу следующий код, написанный на ES6.

expandRow: task(function* (row, data, params){
    var $this = this;
    // Some code
    // ...
    // ...
    // const response = yield this.someServerCall(url, params);
    // ...
    // ...  
});

Выше это где-то вызывается с использованием

this.get('expandRow').perform(row, data, params);

Просмотрвыше, хотя у меня есть представление о синтаксисе Генератора в ES6, я немного запутался по поводу использования «задачи» и «выполнения», в частности.

Я не смог найти нигде этого документированного. Также я не смог найти никаких пользовательских определений для них в моем коде. Куда мне обратиться, чтобы узнать больше о синтаксисе?

1 Ответ

1 голос
/ 14 октября 2019

Все это задокументировано в области синтаксиса задач-функций на гибких документах

http://ember -concurrency.com / docs / task-function-syntax /

Пример из документации:

pickRandomNumbers: task(function * () {
  let nums = [];
  for (let i = 0; i < 3; i++) {
    nums.push(Math.floor(Math.random() * 10));
  }

  this.set('status', `My favorite numbers: ${nums.join(', ')}`);
}),

Функция perform - это просто способ выполнения указанной задачи.

...