У меня есть конечная точка express, которая выполняет ряд действий, 1 из которых - проверка доступности доменных имен по API GoDaddy. Я не понимаю, как я могу go ожидать результатов.
l oop будет повторять мой массив tlds
и проверять доступность доменного имени для каждого из них. В настоящее время ax ios вернет обещание от checkDomainAvailability
, разрешения и pu sh данных в массив domains
(я уверен, что это можно записать лучше, но я не очень разбираюсь в JS).
app.post("/domains", async (req, res) => {
var brand = req.body.brand;
let domains = [];
// check domain availability
const tlds = ["dev", "com", "tv", "io", "app", "me"];
tlds.forEach(tld => {
let domain = `${brand}.${tld}`;
godaddy.checkDomainAvailability(domain).then(data => {
domains.push(data);
});
});
res.send(domains);
}
godaddy.checkDomainAvailability()
const checkDomainAvailability = function(domain) {
return api
.get("/domains/available", {
params: {
domain: domain,
checkType: "FULL",
forTransfer: false
}
})
.then(res => {
return res.data;
})
.catch(err => {
logger.error("Godaddy", err);
});
};
Очевидно, что текущий результат состоит в том, что express отправляет результат доменов до того, как каждый будет повторен. Как я могу сделать это в ожидании forEach l oop?
Я пытался использовать for await
следующим образом, но вижу те же результаты.
// check domain availability
const tlds = ["dev", "com", "tv", "io", "app", "me"];
for await (let tld of tlds) {
let domain = `${brand}.${tld}`;
godaddy.checkDomainAvailability(domain).then(data => {
domains.push(data);
});
}