ES6的Promise
工作中经常会碰到这么一个需求:使用ajax发一个A请求后,成功后拿到数据,我们需要把数据传给B请求
$.ajax({
   url: '',
   dataType:'json',
   success: function(data) {
    // 获取data数据 传给下一个请求
    var id = data.id;
    $.ajax({
        url:'',
        data:{"id":id},
        success:function(){
            // .....
        }
    });
  }
});如果使用promise可以这样实现
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
</head>
<body>
<script>
        function getData(resolve){
            setTimeout(()=>{
                var data = {
                    id: '001'
                };
                resolve(data);
            }, 2000);
        }
        function getData2(data){
            setTimeout(()=>{
                console.log(data.id);
            }, 3000)
        }
        var promise = new Promise(getData);
        promise.then(getData2);
</script>
</body>
</html>
Promise其实就是做了一件事情,那就是对异步操作进行了封装,然后可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数,同时提供统一的接口,使得控制异步操作更加容易
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号