Приветствую.
Подскажите, пожалуйста, человеку привыкшему к синхронному коду, как в JS сдеалть возврат значения?
Есть алгоритм, в котором я пробегаюсь по пользователям, и вызываю у них определенный метод:
async function checkAll() {
...
for (let i in users) {
if (users[i].check()) {
users[i].checked = true
await users[i].save()
}
}
...
}
Вот метод check, который вызывается
Schema.methods.check = async function () {
const req = https.request(options, (res) => {
res.on('data', (d) => {
// Как тут сделать return для родительского метода?
});
});
req.on('error', (e) => {
console.error(e.message);
});
req.end();
}
Внутри метода users[i].check() мне нужно сделать запрос на внешний адрес, дождаться его выполнения и вернуть результат. В доке вижу только как повесить на событие функцию.
В голову приходит только аргументом передать в метод check() функцию, выполлняющую то что мне нужно, но что-то подсказывает что есть какой-то метод более удобный (наподобии конструкции await, которая дожидается результата).