ES6中的 Promise的使用

ES6中的promise的出现给我们很好的解决了回调地狱的问题,在使用ES5的时候,在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发,ES6认识到了这点问题,现在promise的使用,完美解决了这个问题。那我们如何理解promise这个单词在ES5中的作用那,你可以想象他是一种承诺,当它成功时执行一些代码,当它失败时执行一些代码。它更符合人类的行为思考习惯,而不在是晦涩难懂的冰冷语言。

promise的基本用法

promise执行多步操作非常好用,那我们就来模仿一个多步操作的过程,那就以吃饭为例吧。要想在家吃顿饭,是要经过三个步骤的。

  1. 洗菜做饭。
  2. 坐下来吃饭。
  3. 收拾桌子洗碗。

这个过程是有一定的顺序的,你必须保证上一步完成,才能顺利进行下一步。我们可以在脑海里先想想这样一个简单的过程在ES5写起来就要有多层的嵌套。那我们现在用promise来实现。

<script>
let state = 1
var step1 = function (resolve,reject) {
if (state==1){
resolve('第一步执行')
}else {
reject('第一步错误')
}
}
var step2 = function (resolve,reject) {
if (state==1){
resolve('第二部执行')
}else {
reject('第二部错误')
}
}
var step3 = function (resolve , reject) {
if (state==1){
resolve('第三部执行')
}else {
reject('第三部错误22')
}
}
var step4 = function (resolve , reject) {
if (state==1){
resolve('第四部执行2222')
}else {
reject('第三四错误')
}
}

new Promise(step1).then(function (val) {
console.log(val)
return new Promise(step2)
}).then(function (val) {
console.log(val)
return new Promise(step3)
}).then(function (val) {
console.log(val)
return new Promise(step4)
}).then(function (val) {
console.log(val)
})


//依次输出 , 如果遇到错误 , 将停止运行 , 后面的函数不再执行

</script>

(完)

分享到