js-Promise

1.什么是回调地狱

如下代码:

        setTimeout(function () {  //第一层
            console.log(111);
            setTimeout(function () {  //第二程
                console.log(222);
                setTimeout(function () {   //第三层
                    console.log(333);
                }, 1000)
            }, 2000)
        }, 3000)

代码中的回调函数套回调函数,这种回调函数中嵌套回调函数的情况就叫做回调地狱。

2.用Promise解决回调地狱

什么是Promise?
Promise是js中的一个原生对象,是一种异步编程的解决方案,可以替换掉传统的回调函数解决方案。
Promise的三个状态:

1、pending[待定]初始状态

2、fulfilled[实现]操作成功

3、rejected[被否决]操作失败

promise详解:



new Promise(

  function (resolve, reject) {

    // 一段耗时的异步操作

    resolve('成功') // 数据处理完成

    // reject('失败') // 数据处理出错

  }

).then(

  (res) => {console.log(res)},  // 成功

  (err) => {console.log(err)} // 失败

)

1.resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;
reject作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

2、.then()返回一个新的Promise实例,所以它可以链式调用
3.错误处理
第一种:
接口有错误返回reject函数
reject(‘错误信息’).then(() => {}, () => {错误处理逻辑})

第二种:
通过catch捕捉错误信息
throw new Error(‘错误信息’).catch( () => {错误处理逻辑})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值