es6 promise的使用

本文介绍了ES6的Promise的使用,包括Promise的基本用法、then、catch、all、race方法,以及Promise.resolve()和Promise.reject()。Promise通过提供更优雅的方式来处理异步回调,避免回调地狱,其状态转换和链式调用机制使得异步操作更加易于理解和维护。
摘要由CSDN通过智能技术生成

由于项目很早就启用了es6,所以开发中经常会用到promise,优雅好用

以前我们经常这么写异步回调:

step1(function(val1) {
    step2(function(val2) {
        step3(function(val3){
            // ...嵌套再嵌套
        })
    })
})

这种三角形代码缺钱显而易见:

  1. 代码不优雅,阅读费劲
  2. 难以维护,俗称回调地狱

然后我们应用es6中promise:

new Promise(step1())
.then(step2())
.then(step3())
// 。。。是不是很帅?

promise以同步的方式来写异步,不用担心错过某个事件或信号,它是等上一个异步操作有结果了再执行它所寄存的下一个操作

几个需要注意的点:

  1. promise有三种状态 等待(pending)、已完成(fulfilled)、已拒绝(rejected)
  2. promise的状态只能从“等待”转到“完成”或者“拒绝”,不能逆向转换,同时“完成”和“拒绝”也不能相互转换
  3. promise必须有一个then方法,并且要返回一个promise对象,供then的链式调用
  4. then接受两个回调(成功与拒绝),在相应的状态转变时触发,回调可返回promise,等待此promise被resolved后,继续触发then链

基本用法

ES6的promise对象是一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值