promise - 即使存在捕获,也会出现“UnhandledPromiseRejectionWarning”错误

标签 promise mocha chai

所以我有这段代码,createExampleDir尚未实现,所以测试失败:

let chai    = require('chai');
let expect  = chai.expect;
let homeDir = require('home-dir');
let lib     = require('../lib.js');

chai.use(require('chai-fs'));

let dir     = homeDir('/example-dir');

describe('lib', () =>
  describe('createExampleDir', () =>
    it('should find ~/example-dir', () => lib.createExampleDir()
      .then(() => expect(dir).to.be.a.directory())
      .catch(() => {throw Error('Who cares!');})
    )
  )
);


问题是我遇到一个UnhandledPromiseRejectionWarning错误,错误为“谁在乎!”被抛出,因此捕获发生:


(节点:30870)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:2):[object Object]
(节点:30870)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。


如何避免UnhandledPromiseRejectionWarning警告?

最佳答案

在chai.use之后添加此代码

process.on('unhandledRejection', e => {
  console.error(e);
});


并且您可以捕获错误和代码字符串号。

关于promise - 即使存在捕获,也会出现“UnhandledPromiseRejectionWarning”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738830/

相关文章:

angular - 从 Angular 中的 promise 返回值

javascript - 如何检查两个对象是否具有同一组属性名称?

javascript - 确保给定参数的每个任务在 Node.JS 中仅完成一次

javascript - 如何从 Google Places 获取一系列地点的坐标,然后在完成所有操作后使用结果?

javascript - promise 中的两次递归调用失败

mocha - TypeError:严格模式函数或调用它们的参数对象上可能无法访问'caller','callee'和'arguments'属性

javascript - 我们可以在 Mocha 中分类测试错误吗?

angularjs - Angular Mocks 'module' 第二次运行失败

javascript - 比较断言中的函数输出类型