javascript - ES6 生成器代码中任务/执行的用户是什么?
问题描述
我有一个 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 语法有所了解,但我对“task”和“perform”的具体使用有点困惑。
我在任何地方都找不到记录。此外,我在我的代码中找不到任何自定义定义。我应该在哪里查看更多关于语法的信息?
解决方案
这都记录在 ember 文档的任务功能语法区域中
文档中的示例:
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 - 使用猫鼬在express.JS中发送发布请求,数据未保存在数据库中
- docker - Docker 守护进程 DNS 故障
- datagridview - [ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引]
- apache-kafka - 找出一个消费者组的kafka消费者版本
- excel - 如何从一个表的列中提取所有唯一值到另一个表的列?
- python - 如何设置需要客户端功能的命令(请阅读说明)
- javascript - 如何从 jQuery 转换为 fetch API
- r - 在同一行的第二行汇总并粘贴值
- javascript - 当应用程序聚焦在启动器中时,如何在 LG TV WebOS 预览区显示内容?
- javascript - 我在下一个 js 网站中使用动态路由。但是访问这些文件的页面无法调用事件处理程序