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毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

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

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    遇到项目上面有叉,但是找不到错误的原因
    遇到build的问题
    遇到scan configurtation CDT builder等的错误
    遇到attemp to invoke virtual method
    遇到looper之类关于消息循环的
    Linux与Windows信息交互快捷方法
    并行查询
    PostgreSQL 事务管理的MVCC
    Linux安装memcached
    Linux 安装 Redis
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/14672644.html
Copyright © 2011-2022 走看看