栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

NodeJS UnhandledPromiseRejection警告

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NodeJS UnhandledPromiseRejection警告

此问题是由以下原因引起的:

.catch((error) => {  assert.isNotOk(error,'Promise error');  done();});

如果断言失败,它将引发错误。该错误将

done()
永远不会被调用,因为代码在此之前出错。这就是导致超时的原因。

“未处理的承诺拒绝” 也由断言失败造成的,因为如果一个错误在被抛出

catch()
的处理程序,
并没有后续的
catch()
处理程序
,错误将得到吞噬(说明这篇文章)。该
UnhandledPromiseRejectionWarning
警告提醒你这个事实。

通常,如果要在Mocha中测试基于承诺的代码,则应依靠Mocha本身已经可以处理承诺的事实。您不应该使用

done()
,而是从测试中返回一个承诺。摩卡咖啡然后会自己捕获任何错误。

像这样:

it('should transition with the correct event', () => {  ...  return new Promise((resolve, reject) => {    ...  }).then((state) => {    assert(state.action === 'DONE', 'should change state');  })  .catch((error) => {    assert.isNotOk(error,'Promise error');  });});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568983.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号