gpt4 book ai didi

javascript - 将 Ember 函数转换为使用 ES2017 async/await

转载 作者:行者123 更新时间:2023-11-30 14:34:16 25 4
gpt4 key购买 nike

我想将此 Ember 路由操作转换为使用 ES2017 异步/等待。有人可以解释一下这会是什么样子吗?

根据规范,我已经将:babel: { includePolyfill: true } 添加到我的 ember-cli-build.js 文件中:

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;
});
}

最佳答案

你的代码,转换为 async/await:

async save() {
let tenant = this.modelFor(this.routeName).tenant;
let app = this.modelFor(this.routeName).app;

try {
await tenant.save();

try {
await tenant.get('app').save({ adapterOptions: { tenantId: tenant.id }});
this.transitionTo('tenants.tenant.info', tenant.id);
} catch (error) {
tenant.get('app').rollback();
throw error;
}
} catch (error) {
tenant.rollback();
throw error;
}
}

要从 promises 转换,您将 await 关键字添加到返回 promises 的方法调用中。您放置在 promise 的 then 方法中的所有内容都可以简单地放在 await 语句之后。

promises 的 catch 方法转换为常规的 try/catch block 。

关于javascript - 将 Ember 函数转换为使用 ES2017 async/await,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50658145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com