ES6--Promise对象

女爷i 2022-12-06 05:23 307阅读 0赞

Promise对象:代表了未来某个将要发生的操作,通常是异步操作
promise对象可以将异步操作以同步的流程表达出来,避免了层层嵌套的
回调函数(回调地狱),ES6的Promise是一个构造函数,用来生成promise实例
基本步骤:1创建promise对象 2.调用promise的then()
3.promise的三个状态:pending:初始化,fullfilled:成功,rejected:失败
4.应用:使用promise实现超时处理,使用promise封装处理ajax请求
使用promise实现封装处理ajax请求
例:

  1. let promise = new Promise((resolve,reject)=>{
  2. console.log("111");
  3. //执行异步操作通常是发送ajax请求,开启定时器
  4. setTimeout(()=>{
  5. console.log("333");
  6. //根据异步任务的返回结果来修改promise的状态
  7. //异步任务执行成功
  8. resolve("哈哈");//修改promise的状态为fullfilled;成功状态
  9. // reject();//修改为失败状态
  10. },2000);
  11. console.log("222");
  12. }).catch((e)=>{});
  13. promise.then((data)=>{//成功的回调,也可以写上参数resolve
  14. console.log(data,'成功了');
  15. },()=>{//失败的回调
  16. console.log('失败了');
  17. });
  18. Promise例子---用ajax获取新闻内容
  19. //promise对象案例练习
  20. //获取新闻内容
  21. function getNews(){
  22. let promise = new Promise((resolve,reject)=>{
  23. //状态:初始化
  24. //执行异步任务
  25. //创建xmlHttp实例对象
  26. let xmlHttp = new XMLHttpRequest();
  27. //绑定监听 readyState
  28. xmlHttp.onreadystatechange = function(){
  29. if(xmlHttp.readyState==4){
  30. if(xmlHttp.status==200){//请求成功
  31. console.log(xmlHttp.responseText);
  32. resolve(xmlHttp.responseText);//修改promise的状态为成功状态
  33. }
  34. }else{//请求失败
  35. reject("暂时没有数据");
  36. }
  37. };
  38. xmlHttp.open('GET',url);
  39. xmlHttp.send();
  40. });
  41. return promise;
  42. }
  43. getNews("address url")
  44. .then((data)=>{
  45. console.log(data);
  46. //发送请求获取内容
  47. let theCommemnt = JSON.parse(data).commemntUrl;//commentUrl是data数据里面的一个地址
  48. let url = "address url"+theCommemnt;
  49. return getNews(url);
  50. },(err)=>{
  51. console.log(err);
  52. })
  53. .then((data)=>{
  54. console.log(data);//上面的then返回的数据
  55. },()=>{
  56. });

发表评论

表情:
评论列表 (有 0 条评论,307人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6--Promise对象

    Promise对象:代表了未来某个将要发生的操作,通常是异步操作 promise对象可以将异步操作以同步的流程表达出来,避免了层层嵌套的 回调函数(回调地狱),ES6的

    相关 ES6 -- Promise对象

    Promise是一种异步编程的解决方案,ES6提供原声的Promise,它比传统的解决方案,回调函数和事件,更加合理和强大。 Promise对象有以下两个特点: 1、对象的

    相关 es6Promise 对象

    Promise 是异步编程的一种解决方案,解决——回调函数和事件 ES6 规定,Promise对象是一个构造函数,用来生成Promise实例。 下面代码创造了一个Prom

    相关 ES6标准----Promise对象

       Promise的含义:         Promise是异步编程的一种解决方法,比传统的解决方法——回调函数和事件—更合理和强大。    它由社区最早提出和实现,

    相关 ES6--Promise对象

    概述 是异步编程的一种解决方案。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。 Promise 状态 状态的特点 Promise 异步操