Цитата:
|
1 Объем кода такой же +/-
|
Допустим, нам надо описать алгоритм регистрации юзера, где необходимо запросить логин, язык, пароль и эмэйл, а затем еще и сохранить данные в ДБ. Логин должен быть уникальным, так что если клиент пришлет уже занятый, надо его об этом оповестить и запросить другой. Если опять пришлет занятый, повторить, и так по кругу.
const loginsTaken = new Set();
class User {
async register() {
let login = await this.request("login");
if (loginsTaken.has(login)) {
do {
this.send("login is taken already");
login = await this.request("login");
} while (loginsTaken.has(login));
}
loginsTaken.set(login);
let language = await this.request("language");
let password = await this.request("password");
let email = await this.request("email");
Object.assign(this, {language, login, password, email});
await this.save();
this.send("registered successfully");
}
}
Перепишешь на чистые обещания?