У меня есть две взаимосвязанные функции.
module.exports = async function newRunner() {
console.log('No Config found. Requesting new Runner ID');
if (!process.env.ADDRESS) {
const a = await inquirer.prompt([
{
type: 'input',
message: 'Enter the runner api address',
name: 'address',
},
]);
config.ADDRESS = a.address;
} else {
config.ADDRESS = process.env.ADDRESS;
}
config.save();
const res = await auth.checkAddress();
console.log('New Runner ID', res.id);
config.ID = res.id;
config.TOKEN = res.token;
config.save();
};
В строке const res = await auth.newRunner();
вызывается следующая функция:
exports.checkAddress = args => new Promise((resolve, reject) => {
const cArgs = {
data: args,
path: {},
parameters: {},
headers: {
'Content-Type': 'application/json',
},
};
client.post(`${config.ADDRESS}/new-runner`, cArgs, (data, response) => {
if (response.statusCode !== 200) return reject(new Error(`Status code ${response.statusCode}`));
return resolve(data);
})
.on('responseTimeout', (res) => {
console.log('Update Response Timeout!', res);
reject(new Error('response has expired'));
})
.on('error', (err) => {
reject(err);
});
});
Мне нужно, чтобы первая функция работала до тех пор, пока введенный адрес не будет правильным, а вторая функция не станет истинной.Я пробовал следующее.
await newRunner();
while (!await auth.newRunner()) {
await newRunner();
}
Функции запускаются как надо, если я введу правильный адрес, неправильный адрес сломает его, но я хочу, чтобы он продолжал работать до тех пор, пока адрес не будет правильным.Что мне нужно изменить, чтобы в архиве было правильное поведение?