Вернуть значение из метода класса

У класса есть метод

    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));
→ Ссылка