I am trying to implement the Customer object in NodeJs and that the instance is able to collect its data.
class CustomerModel extends Model {
  public customer
  constructor(email:string) {
    super();
    this.collection = 'customer';
    this.customer = await CustomerLayer.getCustomerByEmail(email);
  }
}
But I can't have an asynchronous constructor. I have seen that in Javascript you can do the following:
const sleep = () => new Promise(resolve => setTimeout(resolve, 5000));
    class Example {
      constructor () {
        return new Promise(async (resolve, reject) => {
          try {
            await sleep(1000);
            this.value = 23;
          } catch (ex) {
            return reject(ex);
          }
          resolve(this);
        });
      }
    }
    (async () => {
      // It works as expected, as long as you use the await keyword.
      const example = await new Example();
      console.log(example instanceof Example);
      console.log(example.value);
    })();
But I think it is not correct to return the data from the constructor. Is there any correct way to call asynchronous methods from the constructor?
 
     
    