我有一个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语法有所了解,但我对使用“任务”和“执行”感到有些困惑。
我在任何地方都找不到该文件。另外,我在代码中找不到任何自定义定义。我应该在哪里了解更多有关语法的信息?
全部记录在ember文档的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
函数只是执行所述任务的一种方法。