В Node js основная функция прерывает запись в mongoose

Первым работает код для записи в бд mongoose, успевает задать один вопрос и его мгновенно перебивает код из последующей функции play() в основном файле.

Подскажите, пожалуйста, как сделать мой процесс последовательным, чтобы функция срабатывала после полноценной записи в бд? Возможно неправильно использую async await внутри. p.s. использовать Readline Sync не подходит.

основной код файла бд

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

async function newUserCreation(userName, userCountry, userMail) {
  connect(
    'mongodb://localhost:27017/boomerang',
    {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    },
  );

   rl.question('Registration:\nWhat is ur name?\n', async (name) => {
    rl.question('\nYour country:\n', async (country) => {
      rl.question('\nEmail:\n', async (mail) => {
        await newUserCreation(name, country, mail);
        process.exit();
      });
    });
  });
  // rl.pause();

  // rl.resume();

  await User.create({
    name: userName,
    country: userCountry,
    mail: userMail,
  });

  await connection.close();
}


newUserCreation();

код основного файла, в котором идёт запуск

 newUserCreation();
 play();

пробовал такой вариант

play() {
    await newUserCreation()
    ...

при запуске play должен делать clear и обнулять строку терминала, после запускать игру. На деле получается так, мы спрашиваем имя пользователя, и как только начинаем ждать его ответ, сразу запускается игра, не давая ему ответить и спросить последующие вопросы из первого кода ... Кто может помочь ? :)


Ответы (0 шт):