如何仅捕获UnhandledPromiseRejectionWarning错误

时间:2018-10-09 07:57:05

标签: javascript node.js error-handling async-await es6-promise

所以我在ES7异步/等待中使用请求。出现404错误非常常见。 '

 try{
        status=await rp.delete(baseurl+`/images/${id}`);
        .
        .
        .

    }
    catch(e){
        // catch only UnhandledPromiseRejectionWarning error
    }

我希望在try块中按原样抛出其他错误。

1 个答案:

答案 0 :(得分:0)

<?php session_start(); $get_user = $_SESSION['user']; include("../db-conn.php"); mysqli_select_db($con,"projects"); $image_id = $_GET['image_id']; //GET ID FROM BUTTON'S ID, NOW IT'S STATIC $result=mysqli_query($con, "select * from projects where project_id = '$image_id'"); while($row = mysqli_fetch_array($result)) { echo '<img class="img-fluid" src="../../img/projects/'. md5("$get_user") . "/" . $row["project_id"] .'.jpg" alt="" />'; } ?> 来自未处理的拒绝。这不是特定类型的错误。这是控制台中的警告,可能会导致将来的Node版本出现异常。

考虑到当前的UnhandledPromiseRejectionWarning函数无法处理父级范围内的拒绝,因此该代码会导致拒绝和async

UnhandledPromiseRejectionWarning
status=await rp.delete(baseurl+`/images/${id}`); 中的

e错误将恰好是先前引起try..catch的错误:

UnhandledPromiseRejectionWarning
  

我希望在try块中按原样抛出其他错误。

如果引发错误且未在父范围中捕获错误,则会导致try { status=await rp.delete(baseurl+`/images/${id}`); } catch(e){ ... }