废话不多说,啥是promise 呢,Promise是一个构造函数其实就是一个构造函数。
代码实例:
var promise = new Promise(function(resolve,reject){
// ... some code
if(/* 异步操作成功 */){ resolve(value); }
else{
reject(error);
}
});
Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve
和reject
。它们是两个函数,又JavaScript引擎提供,不是自己部署。
resolve
函数的作用,将Promise对象的状态从“未完成”变成“成功”(即从Pending变为Resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去; reject
函数的作用是,在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
Promise实例生成以后,可以用then
方法分别制定Resolved
状态和Rejected
状态的回调函数:
promise.then(function(value){
// sucess
},function(error){
// failure
});12345复制代码
then
方法可以接受2个回调函数作为参数,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。
总结:promise 的出现比较好的处理了回调地狱的情况,让我们可以按一种同步的代码风格去写异步代码,将耗时操作放在promise中进行逻辑处理。 resolve 。reject 分别处理 成功和失败。 最后可以写一个 catch 兜底。
前不久刚换了城市,面试找工作。其实很早之前就想写点技术型博文一直都没动手。
第一次写肯定有不足之处,后续再慢慢完善优化。随便写点记录最近的学习情况吧。