Подтвердить что ты не робот

Следует ли отклонить обещание с ошибкой или строкой?

Я пишу код, который сильно использует ECMAScript 6-like promises в Javascript.

Я не могу решить, если это более "правильно", чтобы отклонить обещание со строкой или с ошибкой, так как я видел оба этих шаблона.

То есть, если лучше позвонить

return new Promise(response, reject) {
    reject("Sky is falling.");
}

или

return new Promise(response, reject) {
    reject(new Error("Sky is falling."));
}
4b9b3361

Ответ 1

Взгляд на документацию Mozilla полезен: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject

Promise.reject("Testing static reject").then(function(reason) {
  // not called
}, function(reason) {
  console.log(reason); // "Testing static reject"
});

Promise.reject(new Error("fail")).then(function(error) {
  // not called
}, function(error) {
  console.log(error); // Stacktrace
});

Он показывает как строки, так и ошибки как действительные "причины" для отклонения. Главное (я думаю), что "причина" должна быть значимой.

Если трассировка стека полезна, тогда лучше дать ошибку. Если требуется простая строка, это будет достаточно.