Вы не можете поместить return в другую функцию и ожидать, что она вернется во внешнюю функцию. (Самая большая проблема)
async getResponse(){
setTimeout(function(){
return "Test";
},1000);
return undefined; // line is basically what is here when you don't return anything
}
await getReponse(); // returns undefined, NOT "Test".
Вместо этого вы можете написать код:
const delay = time => new Promise(res=>setTimeout(res,time));
class Test{
constructor(){
}
async Start(){
var response = await this.getResponse();
console.log(response); // await not needed here.
}
async getResponse(){
var options = {
uri: "https://www.google.com"
}
var response = await request(options);
await delay(1000); // since we're using async functions, we can "await" a promise
return response;
// previous code would return "undefined" when after it called setTimeout
}
}
module.exports = Test;