当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js assert.doesNotReject(asyncFn[, error][, message])用法及代码示例


assert.doesNotReject(asyncFn[, error][, message])

添加于:v10.0.0

参数

等待 asyncFn 承诺,或者,如果 asyncFn 是一个函数,则立即调用该函数并等待返回的承诺完成。然后它将检查承诺是否未被拒绝。

如果asyncFn 是一个函数并且它同步抛出一个错误,那么assert.doesNotReject() 将返回一个带有该错误的被拒绝的Promise。如果函数没有返回承诺,assert.doesNotReject() 将返回一个被拒绝的 Promise 并带有 ERR_INVALID_RETURN_VALUE 错误。在这两种情况下,都会跳过错误处理程序。

使用assert.doesNotReject() 实际上没有用,因为捕获拒绝然后再次拒绝它几乎没有什么好处。相反,请考虑在不应拒绝的特定代码路径旁边添加注释,并尽可能保持错误消息的表达性。

如果指定,error 可以是 Class RegExp 或验证函数。有关详细信息,请参阅 assert.throws()

除了等待完成的异步性质外,其行为与 assert.doesNotThrow() 相同。

import assert from 'node:assert/strict';

await assert.doesNotReject(
  async () => {
    throw new TypeError('Wrong value');
  },
  SyntaxError
);const assert = require('node:assert/strict');

(async () => {
  await assert.doesNotReject(
    async () => {
      throw new TypeError('Wrong value');
    },
    SyntaxError
  );
})();
import assert from 'node:assert/strict';

assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))
  .then(() => {
    // ...
  });const assert = require('node:assert/strict');

assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))
  .then(() => {
    // ...
  });

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 assert.doesNotReject(asyncFn[, error][, message])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。