nodejs модуль assert: assert.throws возвращает только «undefined» - PullRequest
0 голосов
/ 17 апреля 2020

Как указано в официальной документации . Попытка приведенного ниже кода приведет только к undefined.

assert.throws(
  () => {
    throw new Error('Wrong value');
  },
  Error
);

. Мне удалось обнаружить некоторые проблемы с функциями стрелок =>, которые не работают в операторе, но изменить их на function() не изменить вещь. Как и в приведенной выше ссылке, версия моего узла точно такая же версия.

Что мне не хватает?

РЕДАКТИРОВАТЬ:

console.log(assert.throws(
  () => {
    throw new Error('Wrong value');
  },
  Error
)) // this will log "undefined"

let result = assert.throws(
  () => {
    throw new Error('Wrong value');
  },
  Error
);

console.log(result); // as well as this

Большое спасибо

1 Ответ

0 голосов
/ 04 мая 2020

Итак, как @ tkausl заявлено в комментариях (спасибо, кстати.) assert.throws "утверждает, что переданная функция бросает".

Чтобы достичь желаемого результата, мне нужно было сделать следующее:

console.log(() => {
    let error;
    try {
        // function that may throw an error
    } catch (e) {
        error = e;
    }
    // and than do something with 'error' and return a value
    return error
}())
...