js es6 promise学习笔记

测试

<script type="text/javascript">

    function runAsync(){
        var p = new Promise(function(resolve, reject){
            //做一些异步操作
            setTimeout(function(){
                console.log('执行完成');
                reject('出错了');
                resolve('随便什么数据');
            }, 1000);
        });
        return p;
    }
    
    runAsync().then(data => {
        setTimeout(function(){
            console.log(data);
        }, 1000);
    }).catch(data => {
        setTimeout(function(){
            console.log(data);
        }, 1000);
    });
    
    //这是对map的操作,跟promise无关,我只是临时在这里做了个测试
    var mapArr = [1, 2, 3, 4].map(x => x*2);
    console.log(mapArr);

</script>

1.用setTimeout模拟异步耗时

2.如果reject在resolve之前被调用,那么就会抛出异常;否则走正常流程。

3.正常走then,异常走catch

4.有必要解释reject和resolve的作用:reject是往外抛出异常,reject中的参数就是异常信息,会被catch捕获到;resolve是执行成功的意思,resolve中的参数会被传递到then中。

posted @ 2021-04-02 14:36  屌丝大叔的笔记  阅读(57)  评论(0编辑  收藏  举报