promise的诞生是为了解决callback回调异步编程的回调金字塔得出现,实现单向队列的事件排列,方便维护。
promise的事件触发基于状态,有三个状态:reslove,reject,pending分别是完成,拒绝,等待,今天看了一点点,先简单说说reslove和reject,下面看两个例子
// 同步resolve
var promise1 = new Promise(
(resolve, reject) => {
resolve("this is promise1 resolve");
//定义reject内容
}
).then(
(msg) => {
console.log(msg);
},
(err) => {
console.log(err);
}
);
输出结果:this is promise1 resolve
// 同步catch
var promise3 = new Promise(
(resolve, reject) => {
reject("this is promise3 reject catch");
}
).then(
(msg) => {
// console.log(msg);
}
).catch(
(e) => {
console.log(e);
}
);
输出结果:this is promise3 reject catch
上面例子说明
1.then函数接收的参数是一个function
2.then方法可以通过链式调用
3.then和catch方法是同级的,两个返回的结果都是一个promise对象
4.如果在第一个promise中定义状态为reslove的值,那个值将会被传递到下一个promise对象作为参数。
5.因为4.所以会then会连续执行到尾
6.定义为状态reject的值传递到catch方法内定义的方法作为函数。