(Кажется, я усвоил это, это то, что .then возвращает промис, даже если он не запущен, я никогда этого не знал, спасибо)
Пожалуйста, простите меня, если это глупый вопрос, но я просто не понимаю, я гуглил это много раз, но в этих статьях очень кратко говорится о Promise, например, как его создать, как решить, как .then и прочее .
Я запутался в цепочке обещаний.
Это мой код:
let p = new Promise(function (resolve, reject){
let value = 19;
if(!value){
resolve(value)
} else {
reject(value)
}
})
p.then(x => {console.log(x*x); throw false})
.then(null, x => console.log(x))
//19
Этот код печатает 19, и я понятия не имею, почему?
Я знаю, что каждый .then возвращает промис, но в этом случае p.then даже не должен был запускаться, потому что промис не разрешен. Теперь в каком-то смысле кажется, что это не сработало, но если так, то почему сработало второе .then?
Наш первый .then не выполнялся, он не выполнял никаких обещаний, поэтому ничего не должно было отображаться.
Теперь, если 2-й .then не работает так же, как p.then(), что, я надеюсь, не работает, потому что это только создаст больше путаницы, я не понимаю, почему 2-й .then будет работать?.
Извините еще раз, если мой вопрос или английский плохой, но мне действительно любопытно об этом.