ES6生成器代码中任务/执行的用户是什么?

问题描述 投票:0回答:1

我有一个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中的Generator语法有所了解,但我对使用“任务”和“执​​行”感到有些困惑。

我在任何地方都找不到该文件。另外,我在代码中找不到任何自定义定义。我应该在哪里了解更多有关语法的信息?

javascript ecmascript-6 generator yield
1个回答
0
投票

全部记录在ember文档的task-function-syntax区域中

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函数只是执行所述任务的一种方法。

© www.soinside.com 2019 - 2024. All rights reserved.