А, ну да, задачка забавная, на понимание. Утащу к себе, буду на собеседованиях давать. Решается просто.:)
Вот тебе промежуточное решение:
async getClient() {
if (!this.#client) {
const client = new DummyClient();
this.#client = client.connect().then(() => client);
}
return this.#client;
}
Оно будет работать и, в принципе, может считаться законченным, но семантически не красиво.:)