我正在使用axios get请求,并返回response.data
的对象。但是我希望能够查询response.data
的属性并将其保存为变量,并在另一个类中使用它。
export class myClass {
public async getData() {
return axios.get(url)
.then(response => response.data)
.catch((error) => {
console.log(error);
});
}
}
我想从响应中访问这些属性,并另存为值:
response.data.name
response.data.address
response.data.company
我可以控制台记录属性,但是如果我尝试将其用作某个地方的值,我将无法定义。
public async getName() {
return this.getData().then((response: any) => {
console.log(response.data.name);
return response.data.name;
});
}
致电:
const name = new myClass().getName();
NAME: name(undefined)
答案 0 :(得分:0)
默认情况下,async
函数返回一个Promise
,您应该以这种方式实现它,这更容易理解:
myClass
export class myClass {
...
public async getData() {
return axios.get(url);
}
public async getName() {
try {
const response = await this.getData();
return response.data.name;
} catch (error) {
// handle errors here
}
}
...
}
调用getName()
const myClass = new myClass();
const name = await myClass.getName();