Вернуть значение из метода класса
У класса есть метод
get_score(){
let api_url = 'здесь ссылка';
request(api_url, function (error, response, body) {
if(body == "[]"){
return("No such user");
}else{
let user = JSON.parse(body);
return(user);
}
});
}
Я предполагаю что здесь нужны промисы, но я всякое пробовал, каждый раз получается undefined. Как вернуть user?
Ответы (1 шт):
Автор решения: Yugofx
→ Ссылка
Правильно предполагаете, верните Promise и получите в .then(...) нужную информацию.
...
get_score() { // Promise<User>
let api_url = 'здесь ссылка';
return new Promise((res, rej) => {
request(api_url, function (error, response, body) {
if(body == "[]") { // странная проверка, надеюсь, вы знаете, что делаете
rej("No such user");
} else {
res(JSON.parse(body));
}
});
});
}
...
const scoreBoard = new ScoreBoard();
...
scoreBoard.get_score()
.then(user => console.log(user))
.catch(noUserMessage => console.error(noUserMessage));