我如何更改 axio 获取函数中的参数值

问题描述 投票:0回答:1

我有以下 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); 
});
javascript typescript ajax axios
1个回答
0
投票

axios.get
返回
Promise
,这是异步的。这意味着您的
console.log(par)
在 api 返回结果之前执行。您可以在这里采取几种方法。

  1. .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,
});
  1. 让你的函数使用 async/await

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.  
};    

我不确定您要做什么,但请选择最适合您的用例的方法

© www.soinside.com 2019 - 2024. All rights reserved.