1. 因axios返回值是异步操作,获取返回值时,请求操作还未完成,就已经执行了赋值,导致结果位undefined。错误示例如下:

1

2

3

4

5

6

7

8

9

10

    function GetData(){

        let data;

        axios.get(请求地址, { params: param }).then(res => {

            data = JSON.stringify(res.data.rows);

        }).catch(err => {

            console.log(err);

        });

        return data;

    }

    const data=GetData();

2.解决方法使用async….await,async声明发放为异步方法,await等待异步操作执行完毕。

1

2

3

4

5

6

7

8

9

async function GetData() {

    let data;

    await axios.get(请求地址, { params: param }).then(res => {

        data = JSON.stringify(res.data.rows);

    }).catch(err => {

        console.log(err);

    });

    return data;

}

3.异步方法返回值为promise对象,接收时需要通过.then(res=>{})接受,值存在res中。

1

2

3

GetData().then(res => {

      console.log(res);

});

 

 

原文链接:http://www.dreamload.cn/blog/?p=922

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐