首页 > 代码库 > es6中的promise对象

es6中的promise对象

     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

 

es6中的promise对象