Node中--unhandled-rejections=strict参数的作用

    技术2022-07-11  76

    作用

    实际上,这个参数是为了处理异步函数异常中断的,我们举例说明。

    例子

    function waitFor(ms) { return new Promise(resolve => { setTimeout(resolve, ms); }); } async function main(shouldFailed) { await waitFor(1000); throw new Error("ERRRRRRR!"); // failed after 1sec } main();

    我们在异步函数主动抛出一个异常,现在把这个脚本命名为 test.js

    不含该参数

    执行 Node:

    node test.js

    确实是抛出异常了。

    之后我们查看上一条命令执行是否成功(状态码):

    echo $?

    是执行成功的,这不符合我们的预期。

    含该参数

    node --unhandled-rejections=strict test.js

    注意该参数需要放在脚本文件名前面。

    抛出错误直接中断。

    我们看一下状态码: 没有执行成功,符合我们的预期。

    Processed: 0.011, SQL: 9