javascript - ES6 生成器代码中 task/perform 的用户是什么?

标签 javascript ecmascript-6 generator yield

我有一个 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 中的生成器语法有所了解,但我对“任务”和“执​​行”的具体使用有点困惑。

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

最佳答案

这些都记录在 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 函数只是执行上述任务的一种方式。

关于javascript - ES6 生成器代码中 task/perform 的用户是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381778/

相关文章:

java - 使用 Java8 生成器的无限自然数序列

javascript - HTML 标签未在 div 内呈现(ckeditor)

javascript - 如何可靠地使用 JavaScript 提交 HTML 表单?

JavaScript Function.prototype.toSource() 在 Chrome 中不起作用

node.js - 通天塔与否 - 困惑

javascript - 对象解构为另一个对象不起作用

python - 如何并行运行生成器代码?

javascript - Node + Mysql - 连接问题

reactjs - Jest : TypeError: Cannot read property of undefined

python - 使用 python 生成器处理大文本文件