目录
2.2一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。
一,“回调地狱”
定义:在使用JavaScript时,为了实现某些逻辑经常会写出层层嵌套的回调函数,如果嵌套过多,会极大影响代码可读性和逻辑,这种情况也被成为回调地狱。
<script>
setTimeout(() => {
console.log('等待三秒后看🎈');
setTimeout(() => {
console.log('再等待三秒后看🎉');
setTimeout(() => {
console.log('又等待三秒才有🎁');
//....
}, 3000);
}, 3000)
}, 3000)
</script>
二,如何解决“回调地狱”呢?于是Promise应运而生
1.Promise:定义
定义:是异步编程的一种解决方案,可以替代传统的解决方案——回调函数和事件。ES6统一了用法,并原生提供了Promise对象
2.作为对象,Promise有两个特点:
2.1对象的状态不受外界影响。
Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。