我有以下 axios 代码来获取这样的数据,但无法工作。
getdata(par:any){
axios.get(url)
.then(response => par.sqltxt=this.trans.transray(response.data))
.catch((error) => console.log(error));
console.log(par);
// return par;
};
和其他代码
const para = {s01:'01',sqltxt:'insert into '};
server.get('/api',(req:Request,resp:Response,next:NextFunction) =>{
resp.send('hello api ');
gaxios.getdata(para);
});
axios.get
返回 Promise
,这是异步的。这意味着您的 console.log(par)
在 api 返回结果之前执行。您可以在这里采取几种方法。
.then()
中运行您的工作。getdata(par:any){
axios.get(url)
.then(response => par.sqltxt=this.trans.transray(response.data))
.then(result => {
// run your work here, but you can not return it
})
.catch((error) => console.log(error));
};
您也可以只返回
axios.get
,但随后您的 getdata(par:any)
返回一个 Promise,您需要调用 then
。
getdata(par:any){
return axios.get(url)
.then(response => par.sqltxt=this.trans.transray(response.data))
.catch((error) => console.log(error));
};
getdata({}).then(result => {
// run your work here,
});
async getdata(par:any){
const result = await axios.get(url)
.then(response => par.sqltxt=this.trans.transray(response.data))
.catch((error) => console.log(error));
// run your work here, you can return it.
};
我不确定您要做什么,但请选择最适合您的用例的方法