javascript-承诺异步/等待
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-承诺异步/等待,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含942字,纯文字阅读大概需要2分钟。
内容图文
![javascript-承诺异步/等待](/upload/InfoBanner/zyjiaocheng/684/305998e937954d17b5e73a6154fb0e03.jpg)
我有以下代码.
class DB {
constructor(client) {
this.client = client;
}
}
export default function store() {
return new Promise((resolve, reject) => {
pg.connect(process.env.DATABASE_URL, client => {
client.query('CREATE TABLE x(name VARCHAR(100))');
return resolve(new DB(client));
});
});
}
有什么办法可以在类构造函数中移动存储功能,并使用async / await重写它?
解决方法:
AFAIK,您不能将构造函数声明为异步函数.但是,您可以从构造函数返回Promise. This seems to be a terrible idea, so don’t use this in a real-world context.
// Define the class
class DB {
constructor() {
return this.store().then(client => { this.client = client; return this; });
}
async store() {
const client = await new Promise((resolve) => {
pg.connect(process.env.DATABASE_URL, resolve);
});
client.query('CREATE TABLE x(name VARCHAR(100))');
return new DB(client);
}
}
// Create an async function environment
(async function handleData() {
const db = await new DB();
// Do something with your DB
})();
内容总结
以上是互联网集市为您收集整理的javascript-承诺异步/等待全部内容,希望文章能够帮你解决javascript-承诺异步/等待所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】