ES6 Promise对象

1、Promise对象:代表了未来某个将要发生的事件(通常是一个异步操作),一般是结合ajax;

2、有了promise对象,可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数(俗称"回调地狱");

​ ES6的Promise是一个构造函数,用来生成promise实例;

Promise对象的三种状态:

  • pending:初始化状态
  • fullfilled:成功状态
  • rejected:失败状态

Promise对象 使用

<script>
	//  实例化 得到promise对象  new Promise((resolve,reject){})
    //  resolve:更改成功的状态(将Promise对象的状态从“未完成”变为“成功”,即从pending 变为 resolved)
    //  reject:更改失败的状态(将Promise对象的状态从“未完成”变为“失败”,即从pending 变为 rejected)
    
    let promise = new Promise((resolve,reject)=>{
        
    });
    //  
    promise.then();
</script>
Promise对象 处理异步的操作

1)聚合平台:注册实名认证(个人认证)—> 到首页查找需要的api接口文档—>进行添加—>后台我的接口里面查找刚刚添加的接口

2)

ajax 格式:

$.ajax({

​ url: // 交互地址

​ type: // 以声明方式提交 get / post

​ async: 默认是以异步请求 async : false 同步请求 (不设置参数,默认是异步请求)

​ dataType:"" // 交互格式 json jsonp xml

​ data:{}

​ success:function(res){}

})

<script>
	function newpage(url){
        //  实例化得到Promise对象
        let promise = new Promise((resolve,reject)=>{
        	//  以ajax获取接口
            $.ajax({
                url:url,
                type:'get',
                dataType:'jsonp',
                data:{
                    'sort': 'desc',
                    'time': '1418816972',
                    'key': '72214f2e7b785a3a138d232e6112f070',
                },
                success:function(res){
                    console.log(res);
                    resolve(res.result.data);  //  更改数据状态
                    
                }
            })
    	});
        return promise;   //  返回promise对象
    }
    let ceshi = newpage('http://v.juhe.cn/joke/content/list.php');
    console.log(ceshi);   //  promise  Promise{<state>:"pending"}
    
    ceshi.then((data)=>{
        console.log(data);  // Array20  [ {...},{...},{...},{...},{...},{...},{...},{...},{...},{...},... ]
        for(x in data){
            document.write(data[x].content+'<br>');
        }
    })
    
</script>
流程:
  • 实例化得到Promise对象
  • 用ajax接受数据
  • 更新状态
  • then(data) // data接收到数据
  • 循环输出内容到页面中显示
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值