А помогите решить странную и необычную задачу для яваскрипта?
https://www.codewars.com/kata/how-can-i-throw-an-e...
нужно бросить ошибку с текстом, но НЕЛЬЗЯ использовать объект Error, нельзя использовать eval()
eval('throw new Error()')
// так нельзя
нельзя использовать конструктор функции
new Function('thr' + 'ow new Error()')
// кстати слово throw тоже нельзя использовать
Есть подозрение, что надо как-то реджектить промис, и не ловить reject в блоке catch, чтобы ошибка пробросилась дальше, но функция не вызывается асинхронно и поэтому не ждет и возвращает undefined
function bang(){
(async function(){
const e = await Promise.reject("Just th" + "row like this!")
return e
})()
// undefined И ПОТОМ бросает нужную ошибку
// самое близкое к решению, докуда я смог подобраться
}
function bang(){
return (async function(){
const e = await Promise.reject("Just th" + "row like this!")
return e
})()
// а так возвращает Promise {<rejected>:
// но не ошибку
}
что еще? как еще?