• Promise的Catch报错总结


    在使用Promise时,异步返回的结果可能会两种,一种是使用resolve返回,另一种是使用reject返回。

    当使用reject返回时,会throw一个Error出来。

    这时的这个Error需要Catch住。

    在Promise中Catch一个Error有两种。

    第一种是在Then的回调中定义第二个参数:

    先定义一个PromiseTest.html文件:

    在文件上写下代码:

    之后,双击“PromiseTest.html”,可以在网页上查看结果:

     

    第二种是定义Catch回调函数:

    把“失败2”的回调移除,加上Catch回调:

    运行结果:

     最后,再来一个测试:

    把“失败2”加回来:

    1. <script type="text/javascript">
    2. new Promise((resolve, reject) => {
    3. setTimeout(() => {
    4. // resolve('hello');
    5. // console.log("test");
    6. reject('hello2');
    7. console.log("test2");
    8. }, 1000)
    9. }).then(
    10. (res)=> { // 成功
    11. console.log("成功1"+res);
    12. return res; //当我们需要在传参给后面的then时,可以使用return来返回值
    13. },
    14. (err) => { // 失败
    15. console.log("失败1"+err)
    16. // reject(".............")
    17. throw new Error('抛出一个错1') //throw和return一样会返回后面的值,所以当我们需要在传参给后面的catch时,可以使用throw来返回值
    18. }
    19. ).then(
    20. (res) => { // 成功
    21. console.log("成功2"+res);
    22. },
    23. (err) => { // 失败
    24. console.log("失败2"+err)
    25. }
    26. ).catch(
    27. (err) => { // 失败
    28. console.log("Catch.....失败2"+err)
    29. })
    30. script>

    查看运行结果:

    “Catch.....失败2”又调用不到了,可以Then的第二个参数会屏蔽他后面的Catch回调。

  • 相关阅读:
    20221129今天的世界发生了什么
    Java之反射获取和赋值字段
    Flink DataStream创建执行环境的正确方式与细节问题
    int类型,String类型,double类型比较大小
    Flask 学习-18.配置管理开发/生产/测试环境
    小说接龙小程序
    AutoIt Window Info 使用方法
    迈巴赫S480升级主动式氛围灯 彰显内饰的浪漫婉转气息
    基于 MediaPipe 的图像去背
    ysoserial commonscollections6 分析
  • 原文地址:https://blog.csdn.net/u013654125/article/details/120890569