Ответ 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
});
Он показывает как строки, так и ошибки как действительные "причины" для отклонения. Главное (я думаю), что "причина" должна быть значимой.
Если трассировка стека полезна, тогда лучше дать ошибку. Если требуется простая строка, это будет достаточно.