【发布时间】:2018-11-12 11:09:07
【问题描述】:
我想将此 Ember 路由操作转换为使用 ES2017 异步/等待。有人可以解释一下这会是什么样子吗?
根据规范,我已经在我的 ember-cli-build.js 文件中添加了:babel: { includePolyfill: true }:
save() {
let tenant = this.modelFor(this.routeName).tenant;
let app = this.modelFor(this.routeName).app;
return tenant.save().then(()=> {
return tenant.get('app').save({ adapterOptions: { tenantId: tenant.id }}).then(() => {
this.transitionTo('tenants.tenant.info', tenant.id);
}).catch((error) => {
tenant.get('app').rollback();
throw error;
});
}).catch((error) => {
tenant.rollback();
throw error;
});
}
【问题讨论】:
-
更新:刚刚了解到,截至 2018 年 6 月 2 日,Ember 不支持代码中的 async/await。仅在测试中。 ember-concurrency 是下一个最佳选择。
-
那不正确。你可以使用异步/等待。在某些情况下,仅测试是一个问题。究竟是什么不工作?
-
这是正确的 @Lux ,您应该暂时避免在应用程序代码中使用 async/await ,除非您使用 babel polyfill 发货,使用本机承诺实现并且它没有运行-循环感知,对话最好在以下rfc 中捕获。 Tl;博士现在使用
ember-concurrency或ember-co。 -
上述 cmets 的自动运行断言已被删除:github.com/emberjs/ember.js/pull/16797
标签: javascript ember.js ember-data ecmascript-2017