Я пытаюсь реализовать следующий скрипт:
Функция пытается выполнить асинхронный вызов, и, если выдается исключение, пользователю предлагается указать, должна ли функция выполняться снова.
Если пользователь вводит «y», то процедура должна повториться.
Если пользователь вводит «n», процедура должна завершиться.
Если ни того, ни другого, вопрос должен повториться.
Выполнение всего моего скрипта должно блокироваться, пока пользователь не введет "y" или "n".
Вот что у меня есть (с помощью этот ответ ):
async function sendSignedTransaction(rawTransaction) {
try {
return await web3.eth.sendSignedTransaction(rawTransaction);
}
catch (error) {
process.stdout.write(error.message + "; try again (y/n)?");
process.stdin.on("data", async function(data) {
switch (data.toString().trim()) {
case "y": return await sendSignedTransaction(rawTransaction);
case "n": process.exit();
default : process.stdout.write("try again (y/n)?");
}
});
}
}
Проблема в том, что выполнение скрипта продолжается без ожидания, пока пользователь не введет "y" или "n".
Буду очень признателен за любую помощь.
Спасибо !!!