jenkins构建Unhandled promise rejection,状态也不会变为 Finished: FAILURE

jenkins构建node脚本的时候,如果你的主程序最后是个返回promise的话就不能中断构建脚本,但有时我们需要在node出错的时候就终止运行,并让jenkins构建状态变成FAILURE。比如:
构建脚本:

node a.js
echo 构建程序后面的步骤

想要在a.js 出错时就终止,不要再执行到echo 构建程序后面的步骤。

a.js 内容:

(async function main(){
    // try{
        await new Promise((resolve, reject)=>{
            setTimeout(()=>{
                console.log('timeout');
                reject('reject')
            }, 1000);
        })
        console.log('after await')
    // }catch(e){
    //     console.log('try catch');
    //     throw new Error(e);
    // }
    // console.log('after try')
})

就算你打开try catch,jenkins也是只能看到错误:UnhandledPromiseRejectionWarning: Unhandled promise rejection,而jenkins状态却仍然是success的,不会变成 Finished: FAILURE。

方法:利用 process.exit(1);

(async function main(){
        // try{
            await new Promise((resolve, reject)=>{
                setTimeout(()=>{
                    console.log('timeout');
                    reject('reject')
                }, 1000);
            })
            console.log('after await')
        // }catch(e){
        //     console.log('try catch');
        //     throw new Error(e);
        // }
        // console.log('after try')
    })().catch(function(e){
        process.exit(1);
        // throw new Error(e);
    });
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • title: promise总结 总结在前 前言 下文类似 Promise#then、Promise#resolv...
    JyLie阅读 12,423评论 1 21
  • 你不知道JS:异步 第三章:Promises 接上篇3-1 错误处理(Error Handling) 在异步编程中...
    purple_force阅读 1,500评论 0 2
  • 你不知道JS:异步 第三章:Promises 在第二章,我们指出了采用回调来表达异步和管理并发时的两种主要不足:缺...
    purple_force阅读 2,257评论 0 4
  • 心情不好,看到它就好起来了,觉得还可以,有点萌萌哒感觉,两个小伙伴在雪地里快乐的玩耍!
    时光的船阅读 542评论 0 3
  • 《颜氏家训》里最有名的一句大概就是“黎明即起,洒扫庭除”。为什么这样,多睡一会儿不行吗?这是修身和齐家的手...
    杨仲达阅读 1,299评论 2 0

友情链接更多精彩内容