nodejs 捕获 promise 未处理的 reject

遇到:nodejs unhandledPromiseRejectionWarning 错误应该如何解决 遇到 "unhandledPromiseRejectionWarning" 错误是因为在 Node.js 中,一个 Promise 被 rejected 了,但是没有被处理(handled)。这可能是因为你没有使用适当的错误处理机制,导致 Promise 的 rejected 状态没有被捕获。请根据你的具体代码和需求,检查并修改涉及到 Promise 的部分,确保在异步操作中正确处理错误。如果以上步骤都没有解决问题,你可以检查 Promise 的实现是否正确。 阅读详情
正常情况下,对于没有捕获的 promise的reject 会直接静默的吃掉.而这不是我们想要的.
复现一下看看
function cb(){
    console.log('444');
    fdsaf.fdafdas = 777;
}

new Promise((resolve,reject)=>{
    cb(1)
})

解决:

文档

https://nodejs.org/dist/latest-v4.x/docs/api/process.html#process_event_unhandledrejection

process.on('unhandledRejection', (reason, p) => {
    console.log("Unhandled Rejection at: Promise ", p, " reason: ", reason);
    // application specific logging, throwing an error, or other logic here
});

toy code

process.on('unhandledRejection', (reason, p) => {
    console.log("Unhandled Rejection at: Promise ", p, " reason: ", reason);
    // application specific logging, throwing an error, or other logic here
});
function cb(){
    console.log('444');
    fdsaf.fdafdas = 777;
}

new Promise((resolve,reject)=>{
    cb(1)
})

toy code2 co

process.on('unhandledRejection', (reason, p) => {
    console.log("Unhandled Rejection at: Promise ", p, " reason: ", reason.stack);
    // application specific logging, throwing an error, or other logic here
});
var co = require('co');

function cb(){
    console.log('444');
    fdsaf.fdafdas = 777;
}

co(function*(){
    console.log('1111');
    throw 'myerror```';
}).then(function(value) {
    console.log(value); // Success!
}).catch(err=>{
    console.log('222');
    console.log(err); // Error!
    cb();
    console.log('!!!!');
}).catch(err=>{
    console.log('aaa :',err);
})

nodejs 6.6以后.对没有捕获的 reject 会发出一个警告.

promises: Unhandled rejections now emit a process warning after the first tick. (Benjamin Gruenbaum) #8223

【nodejs】promise Promise规范 Node.js等则规定在JavaScript的回调函数的第一个参数为 Error 对象,这也是它的一个惯例 Promise则是把类似的异步处理对象和处理规则进行规范化, 并按照采用统一的接口来编写,而采取规定方法之外的写法都会出错。 promise的功能是可以将复杂的异步处理轻松地进行模式化, 这也可以说得上是使用promise的理由之一 构造器 实例方法 promise-workflow.js https://github.com/azu/promises-. 阅读详情

相关推荐

docker安装的 n8n提示Your n8n server is configured to use a secure cookie, however you are either visiting

将原来的docker n8n进行删除后即可通过一下方式重新安装,如安装完n8n,提示。

满地找牙的博客 3366

nodejs异常处理

因为nodejs是单线程的,所以一旦发生错误或异常,如果没有捕获,整个系统就会挂掉。 错误异常有两种场景的出现,一种是代码运行中throw new error没有被捕获,另一种是Promise的失败回调函数,没有对应的reject回调函数处理,针对这两种情况Nodejs都有默认的统一处理方式,就是给整个进程process对象监听相应的错误事件。比如 process.on('uncaughtException',function(err) {} ) //监听未捕获的异常 process.on..

飞翔的熊blabla 1052

Aveva Marine C# 二次开发入门001

1# 引用 C:\AVEVA\Marine\OH12.1.SP4\Aveva.ApplicationFramework.dll C:\AVEVA\Marine\OH12.1.SP4\Aveva.ApplicationFramework.Presentation.dll 2# 引用命名空间, using Aveva.ApplicationFramework.Presentation;usi...

weixin_30245867的博客 1911

express 中的错误处理

node中错误处理 node中抛出一个uncaughtException应该要让node进程直接结束。而不是通过process.on('uncaughtException',handler)进行统一处理。 如果真要全局捕获错误,可以像下面这样处理: process .on('unhandledRejection', (reason, p) => { console.error(r...

qq_36391954的博客 7415

RS422总线

①.RS422发送驱动器无高阻三态(浮空)状态RS422收发芯片,发送脚固定强驱动输出,永远钳位 A/B 差分电平,不能关断、不能悬空,只要芯片上电,TX+、TX - 就强制输出互补电压(一路高、一路低)。多条发送并联在同一组差分线上:两个驱动器一个拉 A 高、一个拉 A 低,B 线反向拉扯 → 电源→地大电流对灌,瞬间芯片过流发烫烧毁、总线电平短路错乱。注意:RS485 带DE/RE 收发使能脚:不用发送时可关闭驱动器,输出变成高阻浮空,让出总线,因此能多节点分时发送。③.多点通信方式,一主多从方式;

zhuimeng_1234的博客 222

2026年GESP3月认证C++五级真题解析

因为要合并成升序数组,所以当A[i]小于等于B[j]时,取A[i],否则取B[j]。当a[i]>a[j]时,左边数组中从i到m的所有元素都大于a[j],因此逆序对数量增加m-i+1。给定一个包含n个互不相同的正整数的数组A与一个包含m个互不相同的正整数的数组B,请你帮忙计算有多少个数在数组A与数组B中均出现。下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用int表示,则横线处应该填写()。且a[i] > a[j],则a[i]和a[j]是一个逆序对。

lan_in的博客 116

node.js 中怎样解决 UnhandledPromiseRejectionWarning 错误?

在 node.js 运行中,当遇到 UnhandledPromiseRejectionWarning 错误或警告时,该如何解决呢?错误提示有时候是这样的: (node:6603) UnhandledPromiseRejectionWarning: Error: Protocol error (Runtime.callFunctionOn): Object reference chain is too long 有时候是这样的: (node:6603) UnhandledPromiseRejection

纠缠AI的亮子 2万+

C++ 小游戏程序 (共七款)

C++编程小游戏_闪耀的天狼星的博客-优快云博客_游戏c++C++跑酷小游戏_闪耀的天狼星的博客-优快云博客。好玩的c++编程小游戏,共六款。代码】C++跑酷小游戏。

小天狼星_布莱克 的博客 3万+

Node.js Promise reject 用例调查

如今,Node.js 作为 OpenJS Foundation 中一个颇具影响力的项目, 通过向 stderr 发出弃用警告来处理还未被处理的 rejection。该警告显示了 rejection 发生在哪块内存栈中,并指出在将来的 Node.js 版本中,未处理的 rejection 将导致 Node.js 以非零状态码退出。我们打算删除弃用警告,将其替换为稳定的行为,该行为可能与弃用警告中描述的行为不同。我们正在进行一项调查,以更好地了解 Node.js 用户如何使用 Promises 以及如何处理未处

i_am_someone的博客 798

Trae的付费之路还挺艰难,茫茫多的人想付付不了(附解决办法)

不得不说,Trae国际版这个付费其实整的挺复杂的,但没办法,毕竟有政策限制,付费成功后,你就是尊贵的Pro用户啦,使用Claude 4不排队还是挺爽的,而且600次其实不算少了,有一个小技巧,简单的问题就把模型切到Gemini-2.5-flag,因为使用这个模型是没有次数限制的。其次付费的时候有个ZIP Code,这东西也是个迷之存在,有的地区节点需要填,有的不需要,如果你选到了不需要填的节点,那很好,付费就行了,如果需要填,可以填一个51800试试。

cpp加油站的专栏 5878

070、人脸AE实战:基于人脸检测的亮度优先与背光补偿算法

本文分享了基于人脸检测的亮度优先与背光补偿算法的实战经验。针对逆光自拍场景下人脸过曝问题,作者提出了动态平衡方案: 通过内缩20%的人脸核心区域提取亮度,避免背景干扰 创新性地采用"亮度差+置信度"的背光判定机制 设计动态权重分配策略,人脸权重可在30%-70%间调整 引入平滑处理防止亮度跳变,补偿增益限制在1.5倍以内 关键点在于:不是简单提亮人脸,而是通过分析人脸与背景亮度差,在80-110目标亮度范围内动态调整,实现自然的人脸曝光效果。算法已在实际项目中验证,解决了传统AE在逆光场景下的失效问题。

zzfmlxs的博客 31

浅谈NodeJS之Promise

啥是Promise? Promise是一个构造函数,方法有all、reject、resolve这几个,原型上有then、catch等方法。那么new Promise出来的对象肯定就有then、catch方法。跟着我一步一步学习吧。本文能让你对Promise有一个颠覆的认识。 让我们new一个吧: var promise = new Promise(function(reso...

Gabriel的专栏 7733

深入解析高通SA8775芯片:性能、架构与研发创新趋势

SA8775芯片凭借其强大的CPU、GPU和AI加速能力,能够应对现代智能系统中的复杂计算任务。它不仅适合高性能计算、深度学习应用,也在汽车、智能设备等领域有广泛的应用前景。无论是在自动驾驶系统中,还是在车载信息娱乐和高级嵌入式系统中,SA8775都展现了其出色的计算能力和能效平衡,是现代智能系统的重要硬件基础。SA8775芯片作为高通的高性能处理平台,具有出色的计算和AI加速能力,但也存在一些值得关注的地方。

weixin_43199439的博客 9343

关于nodejs的Promise

#nodejs的Promise ##参考 http://es6.ruanyifeng.com/#docs/promise ##说明 笔者环境为Ubuntu16.04、node6.×.×,使用语言版本为ES6 ##Promise介绍 Promise是nodejs异步编程的一种方式,E...

chuzhuanjing3933的博客 239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

nodejs中Promise使用

promise 英文意思是 诺言; 许诺; 承诺; 获得成功的迹象; 吉兆; 迹象; 用法如字面意思,是一种可能未发生的许诺 js中的代码存在异步执行,一般通过回调函数返回结果,如ajax调用后会在回调函数中获取返回值,但是js代码没有等待返回值而继续向下执行了。现实中程序代码是实现有先后顺序的业务逻辑的,为了让异步代码按照指定的顺序执行,这里使用Promise完成 ...

计算机技术记录 1312

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JS - Promise使用详解

一、背景 大家都知道nodejs很快,为什么会这么快呢,原因就是node采用异步回调的方式来处理需要等待的事件,使得代码会继续往下执行不用在某个地方等待着。但是也有一个不好的地方,当我们有很多回调的时候,比如这个回调执行完需要去执行下个回调,然后接着再执行下个回调,这样就会造成层层嵌套,代码不清晰,很容易进入“回调监狱”,就容易造成下边的例子: async(1, function(value){ ...

chenxi004的博客 3320

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

nodejs中的promise基本操作

1.为什么要使用promise /* 需求:异步的按顺序去读取1.txt、2.txt、3.txt文件的内容 假设 1.txt内容为111 、2.txt内容为222、3.txt内容为333 */ var fs = require('fs');、 fs.readFile('./files/1.txt','utf8',function(err,data){ if(err){ ...

仗剑天涯,从摘要开始 1872

四.nodejs中setTimeout和promise的用法

PS:在这里,你们可以把函数也当成一个变量那样传递看待,那么一切就不会变得奇怪,比如函数随便变换名字,就像变量一样a赋给b或者,函数的一个变量参数,在函数里又变成另一个名字,但它们的值都是不变的。在前面的pc函数中,有两个参数,resolve和reject,这个传递的是两个函数,调用这两个函数,可以改变你创建的这个promise状态,promise有三种状态,Pending(未完成),Resolved(已完成)和Rejected(已失败)上面先定义一个fn函数,它的参数是需要一个函数。

d3582077的专栏 1911

CocosCreator + nodeJs 课程2 javaScript高级进阶

本篇内容我们以访问“天气”为例,来简单的学习 Promise。 直奔主题:一般情况我们调用一次API就可以完成请求,有些情况我们需要反复调用服务器API,这就会形成一个链式调用,这个时候我们可能就会陷入回调带来的问题深渊。介时,我们就有必要依赖于异步进行操作,在nodeJs中,我们就会用到Promise。 一、Promise: 1、主要用于异步计算。 2、可以将异步操作队列化,按照期望的顺序执行,...

HYNN12的博客 2048

Nodejs笔记--Promise

Promise 概念 ES6开始支持。 Promise对象用于一个异步操作的最终完成(包括成功和失败)及结果值的表示。 简单说,就是处理异步请求的。 之所以叫做Promise,就是我承诺,如果成功则怎么处理,失败则怎么处理。 // 语法 new Promise( /* 下面定义的函数是executor */ function(resolve, reject) {...} ); executo...

listener_的博客 508

nodejs中的promise和async以及wait的原理

promise的作用 promise的含义是保证的意思,可以定义一个异步处理的对象 他有两个参数(其实是两个回调函数,因为异步操作就两种结果,ok或者不ok): resolve函数是执行成功时调用的。 reject函数是抛出异常时调用的。 于是乎我们一般这么用 定义 Promise对象 var x = new Promise(function(resolve, reject){ var ret = .... if(ret成功){ return resolve(ret) }else{

学而时习之2 1555

JS - Promise使用详解--摘抄笔记

第一部分: JS - Promise使用详解1(基本概念、使用优点) 一、promises相关概念 promises的概念是由CommonJS小组的成员在Promises/A规范中提出来的。 1,then()方法介绍 根据Promise/A规范,promise是一个对象,只需要then这一个方法。then方法带有如下三个参数: 成功回调 失败回调 前进回...

qq_15801963的博客 249

NodeJS 05_Promise

Promise.allSettled([...]) 同时返回多个Promise的执行结果(无论成功或失败)Promise.race([...]) 返回执行最快的Promise,不考虑对错。Promise.all([...]) 同时返回多个Promise的执行结果。Promise.any([...]) 返回执行最快的正确的Promise。Promise.resolve() 创建一个立即完成的Promise。Promise.reject() 创建一个立刻拒绝的Promise。Promise的静态方法。

weixin_51134461的博客 163

nodejs之promise详解

详细参考:http://liubin.org/promises-book/#__5

Java、node 2万+
上一篇: webstorm nodejs ESLint 简单配置
下一篇: OSX 黑苹果 ps 2 键盘 驱动
whitehack
博客等级 码龄19年 67粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值