У меня проблема с функциями обратного вызова, и я не могу найти для этого решения. Мне нужно получить одно значение внутри обратного вызова для сравнения в последнее время. Проблема в том, что когда я сравниваю, моя переменная все еще имеет начальное значение.
router.get('/qadashboard', (req, res) => {
var total = -1;
var options = {
method: 'GET',
uri: 'https://myurl.com/users',
json: true
};
request(options)
.then((response) => {
// Get Total
total = response.body.total;
})
.catch((err) => {
console.log('API Error - ', err);
});
if (total < 10) {
// Code here
} else {
// Code here
}
res.render("index");
});
Total всегда равно -1, и я уверен, что response.body.total не равно -1 (всегда возвращаются положительные числа). Если я кодирую console.log (response.body.total) внутри функции обратного вызова, она возвращает правильный номер. Могу ли я дождаться завершения выполнения обратного вызова, а затем сравнить, если всего <10?
Спасибо
then
после него, т.е. if и res.render срабатывают до того, как запрос будет разрешен, просто поместите все это вthen
..then
работу по рефакторингуrequest
библиотеки, которая устарела. - person Lawrence Cherone   schedule 31.03.2020