zoukankan      html  css  js  c++  java
  • Promise的异常穿透和中断Promise的链式请求

    1.Promise的异常穿透

    1==》当你使用Promise的then,进行链式调用的时候,可以在最后指定失败的回调
    2==》前面任何操作出现了异常,都会传递到最后失败的回调中进行处理;
    
    Promise的异常穿透和 p.then(resolve=>{ do someting success thing},err=>{ do someting fil thing})
    是不同的哈
    promise的异常穿透是进行链式调用的时候才会出现异常穿透;
    

    2.Promise的异常穿透demo

    let p = new Promise((resolve, reject) => {
        setTimeout(() => {
            reject('第一种err');
        }, 2000)
    })
    p.then(res => {
        console.log(111); //2s后不会输出111
    }).then(res => {
        console.log(222); //2s后不会输出222
    }).catch(err => {
        console.log(err) //最终直接走这里哈
    })
    之所以会走这里是因为,是setTimeout抛出了一个错误的异常;所以不会走then;而是直接走catch;
    之所以是走catch;根据Promise的异常穿透
    
    

    3.Promise的非异常穿透,对错误的处理

    let p = new Promise((resolve, reject) => {
        setTimeout(() => {
            reject('第一种err');
        }, 2000)
    })
    p.then((res) => {
        console.log(res)
    }, (err) => {
        console.log(err);//输出错误
    })
    
    4.中断Promise链式操作
    let p = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('ok');
        }, 2000)
    })
    
    p.then(res => {
        console.log(111)
        // 有且只有一种方式去中断Promise;让Promise的状态是padding
        return new Promise(() => {})
    }).then(res => {
        console.log(222);
    }).catch(err => {
        console.log(err)
    })
    
    作者:明月人倚楼
    出处:https://www.cnblogs.com/IwishIcould/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    ExtJS面向对象
    简单理解Ext.DomQuery操作CSS3选择器
    简单理解Ext.extend
    Pycharm去掉项目所有 # 注释
    windows 杀死进程
    mongo官方企业版安装及数据库授权使用
    python中赋值,深拷贝,浅拷贝区别
    测试驱动开发简单理解
    Flask与WSGI
    Python直接改变实例化对象的列表属性的值 导致在flask中接口多次请求报错
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/14672644.html
Copyright © 2011-2022 走看看