Я новичок в ES6 и серии обещаний. Моя ситуация такова, что исходный сайт вызова вызывает функцию (1), которая затем вызывает другую функцию (2). Попытка получить как функцию 2, так и функцию 1 возвращает обещание в зависимости от успеха или ошибки.
Вот пример, придуманный код:
function level2(data) {
return new Promise((resolve, reject) => {
reject('fail')
})
}
function level1(info) {
level2('abc').then((response) => {
return new Promise((resolve, reject) => {
resolve('success')
})
})
}
level1('thing').then((response) => {
console.log('response2 ' + response)
}).catch(e => {
console.log('error2 ' + e)
})
Я могу успешно использовать один уровень обещаний. Но когда речь идет о цепочке или вложении обещаний, я не использую их должным образом, поэтому внешний слой, который потребляет обещание, не улавливает ошибку.
Как правильно настроить обещания, чтобы обе функции (уровень 1 и 2) могли возвращать вызывающему абоненту успех или неудачу?
В примере функции (уровень1), ошибка функции (уровень2) будет пузыриться наружу?