私は次のコードを持っています。非同期/約束を約束する
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));
});
});
}
クラスのコンストラクタ内のストア機能を移動し、/待つ非同期を使用して、それを書き換えする方法はありますか?
あなたはすでに何かをしようとしたことがありますか?あなたのコードを教えてください。私達は議論することから始めることができます... – Andrea
私はそれが可能だとは思わない;コンストラクタは本質的に同期しているため、コンストラクタ内で非同期操作を行うことはできません(少なくとも適切ではない)。 – Frxstrem
@Frxstremで同意します。通常、コンストラクタは新しいインスタンスを返すことになっています。クラスにストア関数を追加してコンストラクタ内でトリガすることもできます(インスタンスプロパティに約束を割り当てる)。 – nils