zoukankan      html  css  js  c++  java
  • 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中。

  • 相关阅读:
    Windows下的免安装版MySQL配置
    spket插件安装并设置JQuery自动提示
    js生成条形码——JsBarcode
    金明的预算方案
    文化之旅
    方格取数
    天使的起誓
    最大差值
    A%B Problem
    取数游戏
  • 原文地址:https://www.cnblogs.com/subendong/p/14610611.html
Copyright © 2011-2022 走看看