基本用法
创建一个Promise实例
{
if(/*异步操作成功*/){
resolve(value)
}else{
reject(error)
}
})
该函数的两个参数分别是reject
,resolve
。它们是两个函数,由JavaScript引擎提供,不用自己部署resolve
的作用是:将Promise对象从未完成变为成功(pedding --> resolved)reject
的作用是:将Promise对象从未完成变为失败(pedding --> rejected)
Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。
用Promise实现ajax操作
function handler() {
if (this.readyState !== 4) {
return;
}
if (this.status === 200) {
resolve(this.response);
} else {
reject(new Error(this.statusText));
}
};
});
return promise;
};
getJSON("/posts.json").then(function(json) {
console.log('Contents: ' + json);
},function(error) {
console.error('出错了',error);
});
原型方法
Promise.prototype.then()
可以采取链式写法