Promise是一种异步解决方案,是对传统回调函数方法的一种改进。
作用
(1)解决回调地狱,使函数顺序执行
(2)使用then继续返回一个promise对象可以实现链式调用
三种状态
pending(进行中)
resolved(成功)
rejected(失败)
创建Promise实例
Promise对象是一个构造函数,接受一个函数作为参数,这个函数的两个参数分别是resolve和reject,分别会把promise对象的状态从pending改为resolved和rejected。
var promise = new Promise(function(resolve,reject){
//some code
if(//异步操作成功){
resolve(value);
}else{
reject(error);
}
});
resolve用来在异步操作成功之后把结果传递出去。
reject用来抛出异步操作的错误。
Promise.prototype.then()
then()是Promise实例的一种方法,用来指定两种状态的回调函数。
then接收两个回调函数作为参数。第一个是resolved的回调函数,第二个是rejected的回调函数。它们都接收promise对象传出的值作为参数。
promise.then(
function(value){
//success