當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。