首页 > 其他 > 详细

async和await

时间:2019-06-30 09:26:41      阅读:90      评论:0      收藏:0      [点我收藏+]

参考(博主写的很详细)

今天在看项目代码的时候看到这样的代码

async(dispatch) => {
        try {
            let headers = getTokenHeader({});
            const data = (await axios.get(`${baseUrl}n/AllEvents.do${query}`)).data;
            dispatch({
                type:   ,
                data: data.data
            });
        } catch (error) {
            dispatch({
                type:,
                error: new Error(‘获取信息失败‘)
            });
        }
    };

然后发现自己并不知道async是什么,await是什么,故今天便学习记录一下

async是异步的意思

async后面的函数就是异步函数,这意味着该函数不会阻塞后面函数的执行

使用

语法;async function

调用:就像函数一样调用就行了

<script>
    async function fn()
    {
        return ‘hahahah async‘;
    }
    fn();
    console.log(‘我是后面一个‘);
</script>

技术分享图片

async的函数返回的是一个promise对象,获取promise对象,我们可用then

console.log(fn());

技术分享图片

<script>
    async function fn()
    {
        return ‘hahahah async‘;
    }

    fn().then(function(res){
        console.log(res);
        });
    console.log(‘我是后面一个‘);
</script>

技术分享图片

 

 分析

前面说了async的函数返回的是一个promise对象,当调用该函数时,内部会调用Promise.solve() 方法把它转化成一个promise 对象作为返回,并可以在指定状况下触发指定函数。比如fn()函数内部出错,那么就会调用Promise.reject() 返回一个promise 对象

async function fn(flag)
    {
        if(flag)
        return ‘hahahah is true‘;
        else
            return ‘wuwuwu is false‘;
    }

    fn(true).then(function(res){
        console.log(res);
        });
    fn(false).then(function(res){
        console.log(res);
        });

技术分享图片

 

 

await是等待的意思

就是到await的时候就要暂停一下,后面的代码也要等,直到后面的promise对象执行完毕,然后拿到promise resolve 的值并进行返回,返回值拿到之后,它继续向下执行。

 

async和await

原文:https://www.cnblogs.com/ellen-mylife/p/11108649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!