博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6中的promise对象
阅读量:5248 次
发布时间:2019-06-14

本文共 1562 字,大约阅读时间需要 5 分钟。

     Promise是异步里面的一种解决方案,解决了回调嵌套的问题,es6将其进行了语言标准,同意了用法,提供了`promise`对象, promise对象有三种状态:pending(进行中) 、Resolved(已经完成)和Rejected(已失败)

ES6规定,Promise对象是一个构造函数,用来生成Promise实例。

var promise=new Promise(function(resove,reject){     if (/* 异步操作成功 */){    resolve(value);  } else {    reject(error);  }})

Promise实例生成以后,可以用then方法分别指定Resolved状态和Reject状态的回调函数。

promise.then(function(value) {  // success}, function(error) {  // failure});

案例

var promise=new Promise(function(resolve,reject){         console.log('promise');     })     promise.then(function(){        console.log('我后执行')     })     console.log('我先执行') //上面代码中,Promise新建后立即执行,所以首先输出的是“Promise”。然后,then方法指定的回调函数, //将在当前脚本所有同步任务执行完才会执行,所以“我后执行” 最后输出。

 ajax

1      var getJSON=function(url){ 2         var promise=new Promise(function(resolve,reject){ 3             var xhr=new XMLHttpRequest(); 4             xhr.open('get',url); 5             xhr.onreadystatechange=handler; 6             xhr.send(null); 7  8             function handler(){ 9                 if(this.readystate!==4){10                     return;11                 }12                 if(this.status==200){13                     resolve(this.responseText)14                 }else{15                     reject(new Error(this.statusText));16                 }17             }18         })19           return promise;20      }21     getJSON("/get.json").then(function(json) {22       console.log('Contents: ' + json);23     }, function(error) {24       console.error('出错了', error);25     });
View Code

 

转载于:https://www.cnblogs.com/lijinblogs/p/5894176.html

你可能感兴趣的文章
电压驱动与电流驱动
查看>>
Coursera-Getting and Cleaning Data-Week2-课程笔记
查看>>
hdu 4284 Travel(压缩DP,4级)
查看>>
easy_install
查看>>
hdu 1423 Greatest Common Increasing Subsequence(DP 最长公共上升子序列)
查看>>
【Log4j】分包,分等级记录日志信息
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
821. Shortest Distance to a Character
查看>>
初识Treap
查看>>
大话设计模式之策略模式读后感
查看>>
正体复本术解决容易疲劳、不能持续集中精力工作-海淀区非物质文化遗产:#正体复本术#...
查看>>
HTTP与HTTPS的区别
查看>>
2017百度之星复赛1001Arithmetic of Bomb------hdu6144
查看>>
HTTP 请求头与请求体
查看>>
PAT_1072 Gas Station
查看>>
Day03---BeautifulSoup相关内容
查看>>
java集合体系
查看>>
error: the HTTP rewrite module requires the PCRE library
查看>>
Unity3d 插值Lerp与Slerp
查看>>
Register DLL Assembly Gacutil.exe(全局程序集缓存工具)
查看>>