Итак, я попытался воссоздать этот пример и посмотреть, если что-то не так с вашей цепочкой обещаний, но я не думаю, что это так, потому что мой пример ниже работает нормально, то есть: я пытался выбрасывать ошибки и отклонять каждый из макетовфункций, но независимо от того, что я делаю в фиктивных функциях, «это происходит здесь» все еще печатается.
function testResolve() {
return new Promise((res, rej) => res(1))
}
function generateSession(a, b) {
return new Promise((res, rej) => {
console.log(a)
console.log(b)
res(`a: ${a}, b: ${b}`)
})
}
function setAccessToken(token) {
return new Promise((res, rej) => {
res(1)
})
}
Promise.resolve(testResolve())
.then(function(rt) {
var request_token = rt+'2'
return generateSession(request_token, 'a1')
})
.then(function(resp) {
console.log(resp)
return setAccessToken(resp.access_token)
})
.then(() => console.log(x))
.catch(err => {
console.log('this happens here')
console.error(err)
})
Я бы проверил сообщение об отказе от необработанного обещания и увидел бы номер строки, который он вам дал, ипосмотрите на имя файла, где произошла ошибка.Возможно, что где-то еще был необработанный отказ внутри кода, потому что, насколько я знаю, эта цепочка обещаний должна отлавливать любые ошибки, которые происходят где-нибудь в цепочке.